Ember.js EmberJS-记录未定义绑定的方法

Ember.js EmberJS-记录未定义绑定的方法,ember.js,Ember.js,如果您引用的属性不存在,是否有方法让Ember记录警告或错误?当前,如果您在handlebar模板中拼错了绑定属性的名称,则不会显示任何警告,并且很难找到不正确的属性 我启用了日志绑定,这在某种程度上有所帮助,但有很多不相关的内容需要排序。一半的解决方案可能是在使用属性之前使用日志Handlebar帮助程序来记录属性,不幸的是,不存在的属性会导致模板根本无法显示。这是车把不显示错误的常见问题 {{log myProperty}} 我发现没有任何类型的通用内置调试,但有一种机制可以添加您自己的调

如果您引用的属性不存在,是否有方法让Ember记录警告或错误?当前,如果您在handlebar模板中拼错了绑定属性的名称,则不会显示任何警告,并且很难找到不正确的属性


我启用了日志绑定,这在某种程度上有所帮助,但有很多不相关的内容需要排序。

一半的解决方案可能是在使用属性之前使用
日志
Handlebar帮助程序来记录属性,不幸的是,不存在的属性会导致模板根本无法显示。这是车把不显示错误的常见问题

{{log myProperty}}

我发现没有任何类型的通用内置调试,但有一种机制可以添加您自己的调试

对象在“get”调用返回未定义时调用方法“unknownProperty”。您可以将console.warn添加到此方法以记录属性。文档将其描述为进行自定义抽象方法类型处理的一种方法

注意对全局名称空间“App”和“Ember”的过滤——所有对全局属性的调用仍然通过这个接口,但我们所关心的是它们都是转移注意力的

不幸的是,如果您试图通过重新打开Ember.Object本身来实现这一点,您会得到一堆您不关心的垃圾,因为显然这种情况一直都在发生,特别是在EventManager类中。我通过将其应用于Ember.ArrayController、Ember.ObjectController和一个模型类(我的所有模型都从该类继承)来解决这个问题

现在,每当我不小心在把手上键入“hight”而不是“height”时,控制台上就会出现一条整洁的警告信息,而不是空白页


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

听起来对调试很有用。。但这并不能完全解决基本问题。我觉得我花了一半的开发时间在余烬/把手上寻找打字错误和类似的东西;(如果车把没有这个功能,那就太糟糕了。
Ember.Object.reopen(
  unknownProperty: (property) ->
    unless property is 'App' or property is 'Ember'
      console.warn "Unknown property #{property} in #{@toString()}"
)