【发布时间】:2013-11-22 13:38:25
【问题描述】:
我正在尝试将输入的值绑定到它的控制器属性,以便在属性更改时保持更新。当输入值发生变化时,我需要触发一个过滤器方法。
我找到了一些示例,但我要么做错了,要么它们不再适用,因为它们已经有几个月了,而 Ember 已经经历了一些变化。
【问题讨论】:
标签: javascript binding ember.js filter
我正在尝试将输入的值绑定到它的控制器属性,以便在属性更改时保持更新。当输入值发生变化时,我需要触发一个过滤器方法。
我找到了一些示例,但我要么做错了,要么它们不再适用,因为它们已经有几个月了,而 Ember 已经经历了一些变化。
【问题讨论】:
标签: javascript binding ember.js filter
如果您能够直接操作 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) — 但我留给读者作为练习。
【讨论】: