AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值

前端之家收集整理的这篇文章主要介绍了AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在"自定义有关一个表格的Directive"中自定义了一个有关表格的Direcitve,其表格的表现方式是这样的:

以上,变量colmnmap的值是事先定义在了Scope中的:

AngularJS中,还有

一种运行时给Scope变量赋值的办法,那就是在link函数中使用$parse或$eval方法

在Direcitve的呈现方面和以前一致:

Directive大致是这样:

下面给大家介绍下$parse和$eval的不同

首先,$parse跟$eval都是用来解析表达式的, 但是$parse是作为一个单独的服务存在的。$eval是作为scope的方法来使用的。

$parse典型的使用是放在设置字符串表达式映射在真实对象上的值。也可以从$parse上直接获取到表达式对应的值。

修改映射在scope上的属性的值为‘new value'

$eval 即scope.$eval,是执行当前作用域下的表达式,如:scope.$eval('a+b'); 而这个里的a,b是来自 scope = {a: 2,b:3};

看看源码它的实现是

可以找到它也是基于$parse,不过它的参数已经被固定为this,就是当前的scope,所以$eval只是在$parse基础上的封装而已,是一种$parse快捷的API。

原文链接:https://www.f2er.com/js/50403.html

猜你在找的JavaScript相关文章