Ember.js - 为什么不会.property()开火,但.observes()会

时间:2014-08-24 02:17:47

标签: javascript ember.js

我正在玩一些Ember Sortable bits,我有一个简单的列表,我正在排序。我还想通过输入框中输入的内容对其进行过滤。

然而,我第一次尝试的.property()观察者从未行动过。但是,如果我将.property()更改为.observes(),则可以正常使用。

为什么?

Heres my JS Bin

1 个答案:

答案 0 :(得分:2)

根据我的理解,只要属性“abcd'”,就会调用.observes(' abcd')的函数。变化。 .property(' abcd')的函数本身就是一个属性,需要在模板中称为明显。然后每当“abcd'变化,财产也相应变化。

例如,在您的情况下,如果在html模板中调用{{sortData}},则只要filteredData更改,相应的更改就会在控制台日志中输出。

以下是JSBin演示。

我已将上面的代码更改为只演示.property()如何工作。对于您的示例,sortData不返回任何值,并且不适合作为.property()。将它留作.observes()

更有意义