AngularJS中的$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 相关文章
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
这篇文章主要为大家详细介绍了仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件的相关资料,感兴趣的小伙伴们可以参考一下2016-07-07
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
这篇文章主要介绍了使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-11-11
angular使用md5,CryptoJS des加密的方法
这篇文章主要介绍了angular使用md5,CryptoJS des加密的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-06-06
详解使用KeyValueDiffers检测Angular对象的变化
这篇文章主要为大家介绍了KeyValueDiffers检测Angular对象的变化使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04


最新评论