在 Durandal,我正在制作一个列出许多医生的页面。每行都有一个删除按钮。这是我的视图模型:
var Doctor = function() {};
Doctor.Model = function(data) {
this.id = data.id;
this.name = ko.observable(data.name);
};
Doctor.prototype.activate = function() {
this.doctorArr = ko.observableArray();
// Start Doctor List
this.load();
};
Doctor.prototype.load = function() {
// load list into this.doctorArr()
}
Doctor.prototype.remove = function() {
console.log(this);
};
这是我的观点:
<button data-bind="click: remove">Remove Function</button>
<ul data-bind="foreach: { data: doctorArr }">
<li>
<span data-bind="text: name"></span> - <a data-bind="click: $parent.remove">Delete...</a>
</li>
</ul>
点击<button>
会返回:
Doctor {doctorArr: function, activate: function…}
但是单击 foreach 函数内的链接将返回模型:
Doctor.Model {id: "104", name: function}
问题是当“this”返回模型时,我无法弄清楚如何从删除函数内部访问医生Arr。我需要它来删除该项目。