我正在尝试使用 Angular,它与我的 $http、 Controller 和 View 完美配合。但是当我看到 Firebug 调试器时,在脚本选项卡中“angular.js line 12502 > function”会自动添加多次。里面显示如下:
s = eso(s, fe);
l = eso(l, fe);
if(s == null) return undefined;
s=eso(((l&&l.hasOwnProperty("getAssess"))?l:s).getAssess, fe);
return s;
我正在使用的版本 /** * @license AngularJS v1.3.6 * (c) 2010-2014 Google, Inc. http://angularjs.org * 许可证:麻省理工学院 请帮助我做错了什么。
快照:
*/
最佳答案
这并不可怕。它只在 Mozilla 的 firebug 中可见。让我告诉你这段代码背后的原因。
AngularJs 在运行时为在对象中存储信息的变量创建动态函数。但这仅发生在第一次运行时。之后,这些方法将从 s 或 l(表示范围或本地)收集信息。
这些行随着版本的变化而变化
Angularjs v1.3.1 将显示在第 12283 行,因为此代码在此处创建函数。
/* jshint -W054 */
var evaledFnGetter = new Function('s', 'l', code); // s=scope, l=locals
/* jshint +W054 */
Angularjs v1.3.6 将显示在第 12502 行,因为该行正在运行
/* jshint -W054 */
var evaledFnGetter = new Function('s', 'l','eso','fe' code); // s=scope, l=locals, eso=ensureSafeObject
/* jshint +W054 */
Angularjs v1.3.7 在此功能上做了更多工作,如 Find here change sheet
a chain of field accessors should use a single getterFn
通过查看此 Change Sheet 来保持更新
关于angularjs - "angular.js line 12502 > function"多次自动添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618929/