我正在使用Knockout.js,我在这方面很新.我创建了一个
Example to my problem.在这里我试图将knockout绑定绑定到动态生成的元素.但是绑定不适用于动态生成的元素.
我正在尝试将输入文本字段与label元素同步.因此无论我们在输入字段中输入什么内容,相同的文本都会反映在其相应的标签元素中如果我不清楚我的问题,请原谅我,请让我通关.帮帮我们?谢谢.
解决方法
在您的代码中,您没有使用knockout的主要功能之一 – 自动生成html.而不是使用jQuery添加新行 – 使用knockout 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());
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>