我正在尝试学习 Knockoutjs,但在向 observablearray 添加和删除对象时遇到了一些问题。
我有以下视图模型,我在其中从 Web 服务获取一些数据并填充一些 html。这工作正常。但是不起作用的是从 observablearray 中删除项目,因为单击事件似乎没有调用 removeEmployee。
function EmployeeViewModel(){
var self=this;
self.employees=ko.observableArray();
self.removeEmployee = function(item) {
self.employees.remove(item);
};
}
function success(data) {
EmployeeViewModel.employees=ko.mapping.fromJS(data);
ko.applyBindings(EmployeeViewModel);
};
ApiCall({
data: {
[get data]
},
onSuccess: function(data){success(data.result)}
});
和以下html:
<div data-bind="foreach: employees">
<h2>Hello, <span data-bind="text: full_name"> </span>!</h2>
<button data-bind="click: $parent.removeEmployee">Remove</button>
</div>
我曾尝试在这里设置一个 jsfiddle:http: //jsfiddle.net/8yX5M/,其中删除项目确实有效。不同之处在于,在 jsfiddle 中,项目不是从外部源获取的,并且我使用 removeEmployee 而不是 $parent.removeEmployee。
任何想法为什么非 jsfiddle 版本不起作用?
谢谢托马斯