如果您引用不存在的属性,有没有办法让 Ember 记录警告或错误?目前,如果您拼错了绑定在车把模板中的属性名称,则不会发出警告,它只是不显示任何内容,并且很难找到哪个属性不正确。
我启用了 LOG_BINDINGS,这有点帮助,但是有很多不相关的东西需要整理。
如果您引用不存在的属性,有没有办法让 Ember 记录警告或错误?目前,如果您拼错了绑定在车把模板中的属性名称,则不会发出警告,它只是不显示任何内容,并且很难找到哪个属性不正确。
我启用了 LOG_BINDINGS,这有点帮助,但是有很多不相关的东西需要整理。
我没有找到任何类型的通用内置调试,但有一种机制可以添加你自己的。
每当“get”调用返回未定义时,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”时,我都会在控制台上收到一条简洁的警告消息,而不是空白页
我假设,在生产解决方案中,人们希望将其链接到构建中的某种“调试”选项。
一种解决方案可能是在使用log
之前使用把手助手记录属性,不幸的是,不存在的属性会导致模板根本不显示。这是车把不显示错误的常见问题。
{{log myProperty}}