EmberJS:将输入值绑定到Controller属性并在更改时运行过滤器

时间:2013-11-10 20:23:53

标签: javascript binding ember.js filter

我正在尝试将输入的值绑定到它的控制器属性,以便在属性更改时保持更新。当输入值发生变化时,我需要触发一个过滤方法。

我找到了一些例子,但是我做错了,或者他们不再适用,因为他们已经有几个月了,而且Ember经历了一些变化。

JSBin:http://emberjs.jsbin.com/oTiKiDI/1/edit

1 个答案:

答案 0 :(得分:1)

如果你能够直接操纵this.inputDate属性,正如你在jsbin中所做的那样,我相信当你改变这个值时它不会正确地触发任何观察者。因此,不应该操纵this.inputDate.anything,而应该this.set('inputDate', [whatever])

Date().getDate()仅返回该月的某一天,而不是Date对象的任何可用代理,并且将1添加到该值不会将一天添加到Date()。我更喜欢使用http://momentjs.com/来无痛地和语义地操纵日期。

http://emberjs.jsbin.com/oKehAYE/3/edit有效,并且filterDate退出了操作哈希并变成了观察者。如果您取消注释alert()行,则会在inputDate更改时执行某项操作。它可能无法理想地工作,因为当页面最初呈现您有Date个对象时,然后一旦您更改它就有Moment - 您也可以初始化inputDate moment(new Date) - 但我把它作为读者的练习。