zoukankan      html  css  js  c++  java
  • Angular

    $interpolate

    将一个字符串编译成一个插值函数。HTML编译服务使用这个服务完成数据绑定。

    使用:$interpolate(text,[mustHaveExpression],[trustedContext],[allOrNothing]);

    text:需要被编译的字符串。

    mustHaveExpression:boolean,如果为true,那么text必须含有嵌入其中的表达式,不然将会返回null,而不是预期的interpolate function,默认为false。

    trustedContext:string,如果这个参数被提供,那么在返回相应的函数之前会使用$sce.getTrusted(interpolatedResult, trustedContext)对返回的结果做处理。

    $interpolate带有一个可选的第四个参数,allOrNothing。如果allOrNothing为true,插值函数将会返回未定义除非所有嵌入表达式的计算结果不为undefined。

    使用代码:

      <div ng-app="Demo" ng-controller="testCtrl as ctrl">
          <input ng-model="ctrl.text" />{{ctrl.value}}
      </div>
    复制代码
      (function(){
         angular.module('Demo', [])
         .controller('testCtrl',["$interpolate","$scope",testCtrl]);
         function testCtrl($interpolate,$scope) {
            var vm = this;
            var obj = { value: "Hello" };
            vm.text = "World";
            $scope.$watch("ctrl.text",function(n,o){
               var interpolate = $interpolate("{{value}} " + n);
               vm.value = interpolate(obj);
            })
         }
      }());
    复制代码

    $parse

    将Angular表达式转换为函数。

    使用:$parse(expression);

    expression:被编译的表达式。

    返回:表示表达式编译后的函数。function(context,locals)

    context:对象,含有需要解析的语句中的表达式(通常是一个scope对象)。

    locals:对象,局部变量的上下文对象,用于重写上下文中的值。

    属性

    literal:boolean,表达式的顶节点是否是一个javascript字面量。

    constant:boolean, 表达式是否全部是由javascript的常量字面量组成。

    assign:function(context,locals),可以用来在给定的上下文中修改表达式的值。

    使用代码:

      <div ng-app="Demo" ng-controller="testCtrl as ctrl">
          {{ctrl.ParsedValue}}
      </div>
    复制代码
      (function(){
         angular.module('Demo', [])
         .controller('testCtrl',["$parse",testCtrl]);
         function testCtrl($parse) {
             var vm = this;
             var context = {
             add: function (a, b) { return a + b; },
            mul: function (a, b) { return a * b }
             };
             var data = {a: 2, b: 3, c: 4};
             vm.value = context.mul(data.a,context.add(data.b,data.c));// 平常的函数嵌套调用   2*(3+4) = 14
             var expression = "mul(a, add(b, c))";// 表达式,将被转换为函数
             vm.ParsedValue = $parse(expression)(context, data); //执行上一句的函数   2*(3+4) = 14
         }
      }());
    复制代码

    完事  -。-   这两个破东西也是在google找了好多的资料,选了些较容易区分和说明具体意义的代码,写出来运行运行.... 遇到比较少见少用的api,真TM心累啊,资料难找,理解也不是这么容易...   然后写了好多代码运行,也跑了遍源码,终于是知道了大概是个啥意思了...

  • 相关阅读:
    C#根据IP地址和子网掩码计算广播地址
    关于ZIP大文件压缩
    JVM内存的设置
    Eclipse下内存溢出错误(OutOfMemoryError)
    实体化视图的使用心得(转)
    Java 调用cmd.exe命令
    select 操作选中添加、删除操作Javascript
    quartz定时任务时间设置
    手动安装 MyEclipse6.5 FindBugs
    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.-解决办法
  • 原文地址:https://www.cnblogs.com/koleyang/p/5053147.html
Copyright © 2011-2022 走看看