3

如果我有一个看起来像这样的 AngularJS 模板:

{{foo.someFunc()}}

什么都没有渲染,很难说问题是什么:

  • 未定义foo
  • 未定义foo.someFunc
  • 函数是否已定义,但返回一个空字符串?
  • 还是它可能遇到错误?

在出现错误的情况下(喜欢foo未定义someFnc),不会向我报告任何错误。

有没有办法改变它?

4

2 回答 2

3

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 ^

于 2013-07-12T22:53:17.927 回答
0

我以不同的方式思考这个问题。当您编写模板时,您不是在编写可执行代码,而是在描述布局/功能应该是什么。

如果有未定义的对象被认为是一个错误,那么您需要查看将该对象公开给范围的控制器。测试应该判断一个函数或控制器是否正确运行,而不是模板。

于 2013-07-12T23:03:44.277 回答