如果我有一个看起来像这样的 AngularJS 模板:
{{foo.someFunc()}}
什么都没有渲染,很难说问题是什么:
- 未定义
foo
? - 未定义
foo.someFunc
? - 函数是否已定义,但返回一个空字符串?
- 还是它可能遇到错误?
在出现错误的情况下(喜欢或foo
未定义someFnc
),不会向我报告任何错误。
有没有办法改变它?
如果我有一个看起来像这样的 AngularJS 模板:
{{foo.someFunc()}}
什么都没有渲染,很难说问题是什么:
foo
?foo.someFunc
?在出现错误的情况下(喜欢或foo
未定义someFnc
),不会向我报告任何错误。
有没有办法改变它?
AngularJS expressions are not evaluated with eval().
http://docs.angularjs.org/guide/expression
This is actually a huge advantage of Angular, as it leads to less buggy user experiences.
Forgiving: expression evaluation is forgiving to undefined and null, unlike in JavaScript, where trying to evaluate undefined properties can generate ReferenceError or TypeError.
As far as I know, there is no way to change this ^
我以不同的方式思考这个问题。当您编写模板时,您不是在编写可执行代码,而是在描述布局/功能应该是什么。
如果有未定义的对象被认为是一个错误,那么您需要查看将该对象公开给范围的控制器。测试应该判断一个函数或控制器是否正确运行,而不是模板。