【发布时间】:2017-10-18 01:51:45
【问题描述】:
检查JSFiddle
<div data-bind="foreach: ids" class="">
<label>
<input type="radio" name="someid" data-bind="value: value, checked: $root.selectedid" />
<span data-bind="text: text"></span>
</label>
</div>
<br/>
<input type="button" data-bind="click: test1" value="Test1"/>
<input type="button" data-bind="click: test2" value="Test2"/>
<input type="button" data-bind="click: test3" value="Test3"/>
函数无线电数据(文本,值){ this.text = 文本; this.value=值; }
var viewModel = function(){
var self = this;
self.selectedid = ko.observable();
self.ids = ko.observableArray([
new radiodata('one',1),
new radiodata('two',2),
new radiodata('three',3)
]);
self.test1 = function(){
self.selectedid(2);//this doesnot work
};
self.test2 = function(){
self.selectedid('2');//this works
};
self.test3 = function(){
self.selectedid((3).toString());//this was my hack
};
}
var model = new viewModel();
ko.applyBindings(model);
我试图 radio databind 获取 checked 属性,
我的 selectedid 的 json 数据是整数,我试图将 checked 绑定到收音机。
我也为此修补了解决方案,但有谁知道为什么整数数据绑定不起作用?
比如,self.testX 函数会改变收音机的checked 属性
self.test1 = function(){
self.selectedid(2); //this doesnot work
};
self.test2 = function(){
self.selectedid('2');//this works
};
self.test3 = function(){
self.selectedid((3).toString()); //and this was my hack
};
有什么好的解释吗?
【问题讨论】: