我有一个整数属性,它绑定到多个输入字段。第一个是range
类型,第二个是number
,第三个是Ember.Select
视图。这些字段基于条件{{#if visible}}
可见。当我移动滑块然后通过设置visible = false
隐藏字段,然后通过设置visible = true
再次显示它们时,绑定值属性将重置为null
。
此处示例:http://emberjs.jsbin.com/zukukiloseqi/4/edit?html,js,output
在上面的示例中,尝试移动滑块,然后单击“隐藏”,然后单击“显示”。请注意绑定属性重置为null
。另请注意,如果您没有触摸滑块并仅使用Ember.Select
设置绑定属性,则一切正常。最后,当我完全省略Ember.Select
字段时,它也可以正常工作。
这里发生了什么以及如何防止该属性被重置?
感谢您的帮助!
答案 0 :(得分:2)
问题在于Number
和String
之间的转换。 HTML <input>
元素始终存储值的字符串表示形式。请参阅此答案:Data binding: property of model object changes from integer to string
我按照以下方式更改了控制器,它似乎每次都有效(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'));
}
}
});