有没有一个很好的方法来转储或检查表达式的结果?有时当我做
原文链接:https://www.f2er.com/angularjs/144444.html{{some_expression}}
没有显示在该表达式的结果应该显示的页面上。如何确定表达式是否返回null,未定义或空字符串?
如果它是一个普通的对象,像这样,它将显示一个很好的程序员友好的对象的表示,这是伟大的:
{{ {'a': 1} }}
但是,如果您尝试检查评估为null,undefined或”的表达式,它们彼此无法区分!
{{null}} {{undefined}} {{''}}
那么你怎么知道是哪一个?
我尝试使用JSON.stringify:
{{ JSON.stringify(null) }}
但是JSON似乎从Angular表达式中不可用,因为它是一个来自窗口的方法,而不是范围的属性(参见related question about accessing methods from window)。
我尝试使用typeof:
typeof {}: {{ typeof {'a': 1} }}
但是会导致错误:
Error: [$parse:Syntax] Syntax Error: Token '{' is an unexpected token at column 9 of the expression [ typeof {'a': 1} ] starting at [{'a': 1} ].
那么如何使用JSON.stringify(…或console.log)这样的方式将值转储到模板中呢?
一般来说,除了试错之外,还有一个很好的方法来调试角度表达式?由于expressions号角度如此“宽恕”,似乎并没有引起错误;他们只是默默地吞下错误并返回未定义:
In JavaScript,trying to evaluate undefined properties generates
ReferenceError or TypeError. In Angular,expression evaluation is
forgiving to undefined and null.
但是没有看到某种错误信息,你怎么知道Angular的某些表达有什么麻烦呢?