博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJs $interpolate 和 $parse
阅读量:7034 次
发布时间:2019-06-28

本文共 1851 字,大约阅读时间需要 6 分钟。

$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。

使用代码:

{
{ctrl.value}}
(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),可以用来在给定的上下文中修改表达式的值。

使用代码:

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

转载地址:http://kznal.baihongyu.com/

你可能感兴趣的文章
C Primer Plus 第6版 编程练习 2.12 答案
查看>>
有线电视的用户信息,成为美国黑客的新目标
查看>>
物联网智慧社区 衣食住行全智能
查看>>
高性能的Python扩展:第一部分
查看>>
Qt Linguist介绍
查看>>
Qt Creator快捷键
查看>>
《C语言解惑》—— 2.2 printf输出整数或字符
查看>>
为什么在 Redis 实现 Lua 脚本事务?
查看>>
《草根自媒体达人运营实战》一一2.4 总结
查看>>
Linux 内核被指缺乏安全性
查看>>
《Hadoop与大数据挖掘》——2.7 本章小结
查看>>
《Unity 3D人工智能编程》——2.2 子弹类
查看>>
flatpickr 发布 V3 版本 ,Javascript 日期选择器
查看>>
Win10 Creators Update:自动激活磁盘清理工具
查看>>
《淘宝店铺 大数据营销+SEO+爆款打造 一册通》导读
查看>>
开源大数据周刊-第57期
查看>>
java中文乱码解决之道(六)—–javaWeb中的编码解码
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》导读
查看>>
后台 JavaScript 编译改进 Chrome 性能
查看>>
数据结构课程设计实战
查看>>