Data binding 敲除绑定问题
当我点击按钮将数据加载到表中时,我不断得到错误。数据加载,但chrome工具抛出以下错误 不能对同一元素多次应用绑定 我正在运行的代码如下所示:我必须更改什么Data binding 敲除绑定问题,data-binding,knockout.js,Data Binding,Knockout.js,当我点击按钮将数据加载到表中时,我不断得到错误。数据加载,但chrome工具抛出以下错误 不能对同一元素多次应用绑定 我正在运行的代码如下所示:我必须更改什么 <!-- Nav tabs --> <ul class="nav nav-tabs"> <li class="active"><a href="#1" data-toggle="tab">AM</a></li> <li><a hre
<!-- Nav tabs -->
<ul class="nav nav-tabs">
<li class="active"><a href="#1" data-toggle="tab">AM</a></li>
<li><a href="#2" data-toggle="tab">CM</a></li>
<li><a href="#3" data-toggle="tab">IM</a></li>
<li><a href="#4" data-toggle="tab">KT</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="1">
<table class="table table-hover">
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
</tr>
</table>
</div>
<div class="tab-pane" id="2">
<table class="table table-hover">
<thead>
<tr>
<th>Title</th>
<th>Author</th>
<th>Link</th>
<th>Link1</th>
</tr>
</thead>
<tbody data-bind="foreach: Questions">
<tr>
<td data-bind="text: title"></td>
<td data-bind="text: author"></td>
<td>
<button type="button" class="btn btn-link">Link</button>
</td>
<td>
<button type="button" class="btn btn-link" data-bind="text: questionLink"> </button>
<!--<a class="btn" type="button" href="http://example.com">Default (Gray) Button</a>-->
<!--<a class="btn" data-bind="href: questionLink">Default (Gray) Button</a>-->
</td>
</tr>
</tbody>
</table>
</div>
<div class="tab-pane" id="3"></div>
<div class="tab-pane" id="4"></div>
A.
B
C
D
E
标题
作者
链接
链接1
链接
加载问题
函数AddQuestions(){
var self=这个;
self.Questions=ko.observearray();
self.Questions.push(新问题('1','1','1','1','1');
self.Questions.push(新问题('2','2','2','2','2');
ko.applyBindings();
功能问题(标签、id、标题、作者、问题链接){
var self=这个;
self.Label=ko.observable(标签);
self.ID=ko.可观察(ID);
self.title=ko.可观察(title);
自我作者=可观察(作者);
self.questionLink=ko.可观察(questionLink);
}
}
问题是您多次调用ko.applyBindings。你应该每页只调用一次
function Questions() {
var self = this;
self.Questions = ko.observableArray();
self.addQuestions = function() {
self.Questions.push(new Question('1', '1', '1', '1', '1'));
self.Questions.push(new Question('2', '2', '2', '2', '2'));
};
function Question(label, id, title, author, questionLink) {
var self = this;
self.Label = ko.observable(label);
self.ID = ko.observable(id);
self.title = ko.observable(title);
self.author = ko.observable(author);
self.questionLink = ko.observable(questionLink);
}
}
ko.applyBindings(new Questions());
<button id="clickMe" value="clickme" data-bind="click: $root.addQuestions()">Load Questions</button></p>
函数问题(){
var self=这个;
self.Questions=ko.observearray();
self.addQuestions=函数(){
self.Questions.push(新问题('1','1','1','1','1');
self.Questions.push(新问题('2','2','2','2','2');
};
功能问题(标签、id、标题、作者、问题链接){
var self=这个;
self.Label=ko.observable(标签);
self.ID=ko.可观察(ID);
self.title=ko.可观察(title);
自我作者=可观察(作者);
self.questionLink=ko.可观察(questionLink);
}
}
ko.应用绑定(新问题());
负载问题
每个DOM元素只能调用ko.applyBindings
一次
使用ko.applyBindings(viewmodel)
为整个页面调用一次,或者使用ko.applyBindings(viewmodel,domElement)
为所需的元素调用一次
请注意,您不能直接在jQuery对象上调用它:
ko.applyBindings(viewmodel, $("#myObj"));
不行
如果需要,请使用此选项:
ko.applyBindings(viewmodel, $("#myObj").get(0));
ko.applyBindings(viewmodel, $("#myObj").get(0));