失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > AngularsJS中的$parse $eval

AngularsJS中的$parse $eval

时间:2020-09-14 17:26:57

相关推荐

AngularsJS中的$parse $eval

一、$parse服务

$parse服务可以将一个表达式转换为一个函数。这个函数可以被调用,其中的参数是一个上下文对象,通常来说是作用域。

另外,通过$parse的表达式返回的这个函数有一个assign属性。这个assign属性也是一个函数,它可以用来在给定的上下文中改变这个表达式的值。

<div my-attr="obj.name" my-directive>testing</div>

app.directive('myDirective',function($log, $parse) {return function(scope, elem, attrs) {//解析"my-attr属性值到一个函数中"var model = $parse(attrs.myAttr);//model现在是一个函数,可以调用它来获取表达式的值//下面这行代码将会输出作用域中obj.name的值 $log.log(model(scope));elem.bind('click',function(){//'model.assign'也是一个函数,它用来更新表达式的值 model.assign(scope,'New name');scope.$apply();})}});

上面的例子可以充分体现我们为什么需要$parse服务。如果属性值是name,那么我们完全可以不用$parse,只用scope[attrs.myAttr]即可。但是在上面的例子中,方括号并不管用。

$eval服务

$eval是一个作用域scope中的方法,它将会在当前作用域中执行一个表达式并返回结果:

scope.a = 1;scope.b = 2;scope.$eval('a+b'); // 3

如果觉得《AngularsJS中的$parse $eval》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。