【问题标题】:EmberJS: Bind input value to Controller property and run filter on changeEmberJS:将输入值绑定到控制器属性并在更改时运行过滤器
【发布时间】:2013-11-22 13:38:25
【问题描述】:

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

我找到了一些示例,但我要么做错了,要么它们不再适用,因为它们已经有几个月了,而 Ember 已经经历了一些变化。

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

【问题讨论】:

    标签: javascript binding ember.js filter


    【解决方案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) — 但我留给读者作为练习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 2015-06-01
      • 1970-01-01
      • 2013-11-24
      • 2015-08-28
      • 1970-01-01
      相关资源
      最近更新 更多