0

如果您引用不存在的属性,有没有办法让 Ember 记录警告或错误?目前,如果您拼错了绑定在车把模板中的属性名称,则不会发出警告,它只是不显示任何内容,并且很难找到哪个属性不正确。

我启用了 LOG_BINDINGS,这有点帮助,但是有很多不相关的东西需要整理。

4

2 回答 2

1

我没有找到任何类型的通用内置调试,但有一种机制可以添加你自己的。

每当“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”时,我都会在控制台上收到一条简洁的警告消息,而不是空白页

我假设,在生产解决方案中,人们希望将其链接到构建中的某种“调试”选项。

于 2013-07-18T13:25:33.850 回答
0

一种解决方案可能是在使用log之前使用把手助手记录属性,不幸的是,不存在的属性会导致模板根本不显示。这是车把不显示错误的常见问题。

{{log myProperty}}
于 2013-07-17T15:02:41.620 回答