• 第六章 表达式


      前面使用的{{ }}符号将一个变量绑定到$scope上的本质就是一个表达式。

      表达式和eval()很相似,但有以下不同特性:

    • 所有表达式都在其所属作用域内部执行,并有访问本地$scope的权限
    • 不会抛出异常
    • 不允许有流程控制功能(if/else)
    • 可以接受过滤器和过滤器

    解析AngularJS表达式

      尽管AngularJS会自动解析表达式,但有时也可以手动解析。AngularJS通过$pars这个内部服务来进行表达式运算。代码如下:

      

    <!doctype html>
    <html>
    
        <head>
            <script src="angularJs/1.2.13/angular.js"></script>
        </head>
    
        <body ng-app="myApp">
            <div ng-controller="MyController">
                <input ng-model="expr" type="text" placeholder="Enter an expression" />
                <h2>{{ parseValue }}</h2>
            </div>
    
        </body>
        <script>
            angular.module("myApp", [])
                .controller('MyController',
                    function($scope, $parse) {
                        $scope.$watch('expr', function(newVal, oldVal, scope) {
                            if (newVal !== oldVal) {
                                // 用该表达式设置parseFun 
                                var parseFun = $parse(newVal);
                                // 获取经过解析后表达式的值
                                $scope.parseValue = parseFun(scope);
                            }
                        });
                    });
        </script>
    
    </html>

      上述代码中$watch函数有三个参数:$watch(watchFn, watchAction, deepWatch)

        watchFn:带有AngularJS表达式或函数的字符串,它会返回被监控数据模型的当前值

        watchAction:函数或者表达式,当为函数时,传入三个参数,分别是新值,旧值,作用                                      域对象的引用。

      deepWatch:是否深度监控,当为true时,不仅仅监控对象的简单的值, 也会监控对象                           属性的变化。

       $watch 函数会返回一个函数,当你不再需要接收变更通知时,可以用这个返回的函数注销监控器。

    插值字符串

      

     

     

  • 相关阅读:
    my.cnf 配置文档
    win11 默认 右击 老菜单
    慎重修改 profile 文件
    响应延迟数据集 p90/p99 是什么
    Windows 修改 注册表 鼠标右键 菜单 使用**打开
    windows 系统 开启 mysql binlog 变更数据后 根据日志 寻找变更前的数据
    Mysql 的 read_only 只读属性 权限分配 动态权限
    utf8 和 utf8mb4 的区别
    MySQL 数据库 隔离 的 四个级别 和 事务 的 四个特性
    26. 删除有序数组中的重复项
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5618499.html
Copyright © 2020-2023  润新知