【发布时间】:2017-05-05 07:41:03
【问题描述】:
我一直在使用敲除,但我遇到了这个错误“您不能多次将绑定应用于同一个元素”。我在这里阅读了一些解决方案,并尝试使用其中之一。
这是我的代码 sn-p
页面加载完成后应用绑定
$(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));
});
});
});
我通过它调用 id 的 JSON
var 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>
非常感谢任何帮助。提前谢谢你。
【问题讨论】:
-
显示您的 html。您绑定的元素不能是彼此的孩子/父母。例如。
#id1 > #id2是不允许的,而#id1 + #id2是。 -
我们确实需要查看您的 HTML 和 index1 的值。如果所有部分都是兄弟,那么您的代码应该可以正常工作,但是错误消息有点表明您有嵌套的部分。
-
我确实找到了解决方案,但它稍微改变了我的方法。我想我通过阅读您的 cmets 了解了我所犯的错误。我已经用 HTML 编辑了这个问题。谢谢。
标签: javascript jquery knockout.js durandal