敲除动态生成元素的绑定

Tom*_*der 8 javascript jquery knockout.js

我正在使用Knockout.js,我在这方面很新.我为我的问题创建了一个示例.在这里,我试图将knockout绑定绑定到动态生成的元素.但是绑定不适用于动态生成的元素.

我正在尝试将输入文本字段与label元素同步.因此,无论我们在输入字段中输入什么,相同的文本都将反映在其对应的标签元素中.如果我不清楚我的问题,请原谅我,请让我通关.帮帮我们?谢谢.

Art*_*kov 6

在您的代码中,您没有使用knockout- 自动生成html 的主要功能之一.而不是使用jQuery添加新行 - 使用敲除foreach绑定observableArray.当你向数组添加新项目时,knockout会自动生成html标记.

使用Javascript:

function CourseViewModel(){
    var self = this;
    self.textValue = ko.observable('');
}

function CeremonyViewModel() {
    var self = this;

    self.cources = ko.observableArray([new CourseViewModel()]);

    self.addCourse = function(){
        self.cources.push(new CourseViewModel());
    };
}

ko.applyBindings(new CeremonyViewModel());
Run Code Online (Sandbox Code Playgroud)

HTML:

 <div id="menutab">
    <form id="createMForm">
        <input type="button" id="createmenu" value="Add menu" data-bind="click: addCourse"/>
        <div class="menu">
            <table data-bind="foreach: cources" class="ui-widget ui-widget-content" >
                <tr>
                    <td>
                        <label for="CourseName">CourseName</label>
                    </td>
                    <td>
                        <input type="text"  data-bind="value: textValue, valueUpdate:'keyup'" class="CreateCourseName" name="CourseName" />
                    </td>
                </tr>
            </table>
        </div>
    </form>
</div>
<div id="courseoptiontab">
    <form id="createCOForm">
        <div class="options">
            <table data-bind="foreach: cources" class="ui-widget ui-widget-content">
                <tr>
                    <td>
                        <label class="colabel">Course Name
                            <span class="forcourse" data-bind="text: textValue"></span>
                        </label>
                    </td>
                </tr>
          </table>
       </div>
    </form>
<div>
Run Code Online (Sandbox Code Playgroud)

这是工作小提琴:http://jsfiddle.net/vyshniakov/g5vxr/