【发布时间】:2013-10-22 01:10:23
【问题描述】:
我是 Knockout 的新手,正在尝试学习 Knockout 中的点击绑定。
我的示例代码是
HTML
<button data-bind="click: addEmp('fnameX', 'lnameX')">Add one more</button>
<ul data-bind="foreach: employees">
<li>
<span data-bind="text: fname"> </span> <span data-bind="text: lname"> </span>
</li>
</ul>
JavaScript
// model
function employee(fname, lname) {
this.fname = ko.observable(fname);
this.lname = ko.observable(lname);
}
// view model
var vm = {
company: ko.observable('Company Name'),
employees: ko.observableArray(),
addEmp: function (fname, lname) {
this.employees.push(new employee(fname, lname));
}
};
// adding employees to array
vm.addEmp('fname1', 'lname1');
vm.addEmp('fname2', 'lname2');
//binding
ko.applyBindings(vm);
出乎我的意料:
应该显示2条记录,当用户点击“Add one more”时,一条新记录应该被添加到viewmodel,它应该会反映在我的视图中。
但是,实际的输出是:
最初显示 3 条记录,当用户单击“再添加一条”时,没有记录被添加到 viewmodel 中,并且没有反映在视图中。
JSFiddle 链接:http://jsfiddle.net/Rama_Kishore/AGycj/
感谢您的帮助。
【问题讨论】:
-
您是否在控制台中遇到任何错误?
-
不,我没有收到任何错误?
标签: knockout.js