angularjs – Angular.js:$ eval如何工作,为什么它不同于vanill
我很好奇$ scope,你经常在指令中看到,所以我检出了源代码,并在rootScope.js中找到以下内容:
$eval: function(expr,locals) { return $parse(expr)(this,locals); }, $ parse似乎是由parseProvider在parse.js中定义的,它似乎定义了一些它自己的小语法(该文件是900行长)。 我的问题是: > $ eval是什么?为什么它需要自己的迷你解析语言?
$ eval和$ parse不评估JavaScript;他们评估AngularJS
expressions.链接的文档解释表达式和JavaScript之间的差异。
问:$ eval究竟是什么?为什么它需要自己的迷你解析语言? 从文档:
它是一个类似JavaScript的微型语言,它限制了你可以运行的东西(例如没有控制流语句,除了三元运算符),以及添加一些AngularJS的好处(例如过滤器)。 问:为什么不使用纯旧的javascript“eval”? 因为它没有实际评估JavaScript。正如文件说:
链接到上面的文档有更多的信息。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |