没有为示例程序调用Ember classNameBindings

时间:2012-02-21 18:52:16

标签: ember.js

我遇到类名绑定问题。这是相同的jsfiddle代码。记录调用绑定的次数。当属性发生变化时,永远不会调用它。

1 个答案:

答案 0 :(得分:1)

这里似乎有几个问题。首先,如果您希望在数组内容发生更改时重新计算属性,则不能仅依赖于数组属性本身 - 它只会在设置为其他数组时触发更改。如果您依赖myArray.@each,则当内容发生变化时,您的财产也会重新计算。

接下来,包含范围的模板未呈现,因为您在手柄视图声明中提供了一个空视图模板。将您的“HTML”更改为:

{{view App.contact}}

,您的范围将会出现。

最后,在这里运行Ember.run.sync()似乎不够。我不清楚这背后的原因但...计算属性只在读取时更新(与立即更新的观察者相比)。我假设由于您的计算属性仅由视图使用,并且视图可能仅在随后通过JS事件循环运行时更新,因此对于对“下属”的所有更改,仅重新计算一次计算属性。更改您的代码以使用超时,它将正常工作。

这是jsfiddle,其中包含我提出的所有修改建议。