1

我有一个绑定到多个输入字段的整数属性。第一个是 type range,第二个是 a number,第三个是Ember.Selectview 。这些字段基于条件可见{{#if visible}}。当我移动滑块,然后通过设置隐藏字段,visible = false然后通过设置使其再次可见时visible = true,绑定值属性将重置为null.

此处示例:http ://emberjs.jsbin.com/zukukiloseqi/4/edit?html,js,output

在上面的示例中,尝试移动滑块,然后单击“隐藏”,然后单击“显示”。请注意,绑定属性重置为null. 另请注意,如果您不触摸滑块并仅使用 设置绑定属性Ember.Select,则一切正常。最后,当我Ember.Select完全省略该字段时,它也可以正常工作。

这是怎么回事,我怎样才能防止财产被重置?

谢谢你的帮助!

4

1 回答 1

2

问题在于 和 之间的Number转换String。HTML<input>元素始终存储值的字符串表示形式。请看这个答案:数据绑定:模型对象的属性从整数变为字符串

我按如下方式更改了您的控制器,它似乎每次都有效(http://emberjs.jsbin.com/zukukiloseqi/9/):

App.IndexController = Ember.Controller.extend({
    bindvalue:'10',
    visible: true,
    numbers: function() {
      var arr = [];
      for (var i = 0; i <= 64; ++i) {
        arr.push(''+i);
      }
      return arr;
}.property(),
actions:{
  test:function(){
    alert(this.get("bindvalue"));    
  },

  toggle: function() {
    this.set('visible', !this.get('visible'));
  }
}
});
于 2014-10-14T22:22:15.520 回答