我现在一直在使用淘汰赛,但我坚持这个错误"你不能多次将绑定应用于同一个元素" 。我在这里阅读了一些解决方案,并尝试使用其中一种解决方案。
这是我的代码段
一旦页面加载
,就应用绑定 $(document).ready(function()
{
$.each(sections, function(index0, v)
{
console.log("I am here");
$.each(v, function(index1, v1)
{
console.log("went inside the looping statement");
console.log(index1);
ko.applyBindings(new Model, document.getElementById(index1));
});
});
});
我通过JSON调用id
的JSONvar sections =
{
defects :
{
a : '',
b : '',
c : '',
}
};
a,b,c是我的html代码中的id。 这是ViewModel的代码
var Model = function()
{
var self = this;
self.radio = function(key,key1)
{
console.log(key,key1);
return;
}
}
HTML代码
<tr class="" id="a" >
<td>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 question" >
<label class="QuestionTextProperties">Question 1 </label>
</div>
<div class="btn-group col-lg-12 col-md-12 col-sm-12 col-xs-12" data-toggle="buttons">
<label class="btn col-lg-6 col-md-6 col-sm-6 col-xs-6" > <input type="radio" name="a" data-bind="click:radio('defects','a')" class="a" value="0" id="a_No" ><i class="fa fa-circle-o "></i><i class="fa fa-check-circle-o "></i><span class="OptionsTextProperties"> No </span> </label>
<label class="btn col-lg-6 col-md-6 col-sm-6 col-xs-6" > <input type="radio" name="a" data-bind="click:radio('defects','a')" class="a" value="1" id="a_Yes" ><i class="fa fa-circle-o "></i><i class="fa fa-check-circle-o "></i><span class="OptionsTextProperties"> Yes </span> </label>
</div>
</td>
</tr>
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
如果你可以提供帮助,你真的只想在整个文档上使用一次绑定。将您的页面视为模型的视图,然后相应地创建模型。使用'applyBindings'方法在幕后发生了许多事情,这会创建许多观察者和订阅者。
您使用的现有代码作为示例并不是那么清晰,以便可以制作示例解决方案,但是如果您在Plunkr或其他基于云的代码中创建问题,那么应该提供更好的建议。 / p>