好吧,我试图在点击Add to List
按钮时推送特定可观察数组的列表项,但只有在选中任何一个单选按钮时,我才需要显示类似的警报。
这是我的FIDDLE
我建立了与我正在寻找的近乎匹配的小提琴。希望它能帮助你找到我正在寻找的东西。
截至目前,当我们点击按钮时,它根本不添加甚至我检查或不知道最新情况但最终它进入点击功能。
到目前为止,我遇到了困难:
如果是复选框,它非常直接在数组中知道哪个listitem带复选框,但在单选按钮中我的可观察数组将被填充DYNAMICALLY
我无法找到带收音机的excat list项目按钮已选中。
我在if
foreach
条件
if(service.check()) // this one fails me
{
self.addedList.push(service);
count++;
}
任何建议都表示赞赏。
答案 0 :(得分:1)
这是你想要的吗?
查看小提琴here。
我更改了以下内容
if(service.Check) // this one fails me
{
self.addedList.push(service);
count++;
}
答案 1 :(得分:1)
广播输入checked
绑定的工作方式略有不同,请参阅documentation
对于单选按钮,当且仅当参数值等于单选按钮节点的value属性或checkedValue参数指定的值时,KO才会设置要检查的元素。
因此,您不能在样本中使用true / false,因为您实际上有3个值。以下是更改标记的方法:
<input type="radio" name="select" data-bind="checked: $parent.checkedCode, value: Code" />
在您的视图模型中:
self.checkedCode = ko.observable();
self.addToList = function () {
var count =0;
ko.utils.arrayForEach(self.PhoneList(),function(service){
if(service.Code() == self.checkedCode())
{
self.addedList.push(service);
count++;
}
});
if(count == 0) {alert("Check something to Add");}
};
见工作demo。如果你想使用布尔单选按钮(当只有2个可能的值时),我建议你看看Ryan Niemeyer使用checkedRadioToBool自定义绑定这个很棒的jsfiddle。