Data binding 敲除绑定问题

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

当我点击按钮将数据加载到表中时,我不断得到错误。数据加载,但chrome工具抛出以下错误

不能对同一元素多次应用绑定

我正在运行的代码如下所示:我必须更改什么

<!-- 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));