如果您引用不存在的属性,是否有办法让Ember记录警告或错误?目前,如果拼错了车把模板中绑定的属性的名称,则没有警告,它只是没有显示任何内容,并且很难找到哪个属性不正确。
我启用了LOG_BINDINGS,这有点帮助,但有很多不相关的东西可以解决。
答案 0 :(得分:1)
我找不到任何一般的内置调试,但有一种机制可以自己添加。
当'get'调用返回undefined时,Ember.Object会调用方法'unknownProperty'。您可以将console.warn添加到此方法以记录该属性。该文档将其描述为一种进行自定义抽象方法类型处理的方法。
http://emberjs.com/api/classes/Ember.Observable.html#method_get
Ember.Object.reopen(
unknownProperty: (property) ->
unless property is 'App' or property is 'Ember'
console.warn "Unknown property #{property} in #{@toString()}"
)
注意过滤全局命名空间'App'和'Ember' - 所有对全局属性的调用仍然通过这个界面,但是对于我们关心的东西,它们是红色的鲱鱼。
不幸的是,如果你试图通过重新打开Ember.Object本身来做到这一点,你会得到一堆你不关心的垃圾,因为显然这种情况一直在发生,特别是在EventManager类中。我通过将它应用于Ember.ArrayController,Ember.ObjectController和我所有模型继承的Model类来解决这个问题。
每次我不小心将“hight”键入车把而不是“height”时,我现在在控制台上得到一条简洁的警告信息而不是空白页
在生产解决方案中,我想假设将其与构建中的某种“调试”选项相关联。
答案 1 :(得分:0)
一半解决方案可能是在使用之前使用log
把手助手来记录属性,遗憾的是,不存在的属性导致模板根本不显示。这是车把不显示错误的常见问题。
{{log myProperty}}