码迷,mamicode.com
首页 > Windows程序 > 详细

野兽的Angular Api 学习、翻译及理解 - - $interpolate 和 $parse

时间:2015-11-23 22:03:01      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

野兽的ng api学习 -- $interpolate 和 $parse

$interpolate

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

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

使用代码:

    <div ng-app="Demo">

        <div ng-controller="demoCtrl">

            <input ng-model="text2" />

            {{value}}

        </div>

    </div>

    <script>

        angular.module(‘Demo‘, [])

        .controller("demoCtrl", ["$scope", "$interpolate", function ($scope, $interpolate) {

            var obj = { text1: "Hello", text2: "World" };

            $scope.text2 = "World";

            $scope.$watch("text2", function (n,o) {

                var interpolate = $interpolate("{{text1}} "+n);

                $scope.value = interpolate(obj);

            })

        }])

</script>

 

$parse

将Angular表达式转换为函数。

使用:$parse(expression);

expression:被编译的表达式。

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

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

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

返回的函数含有一下属性:

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

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

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

使用代码:

          angular.module(‘Demo‘, [])

        .controller("demoCtrl", ["$scope", "$parse", function ($scope, $parse) {

            var obj = {

                text: "World"

            };

            var parses = $parse("‘Hello ‘+ text");

            var v = parses(obj);// Hello World

        }])

 

这篇后续再做补充...

野兽的Angular Api 学习、翻译及理解 - - $interpolate 和 $parse

标签:

原文地址:http://www.cnblogs.com/ys-ys/p/4989682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!