在Durandal中,我正在編寫列出了一些醫生的頁面。每一行都有一個刪除按鈕。這裏是我的視圖模型:Javascript原型和訪問'this'的父對象
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函數將返回mod EL:
Doctor.Model {id: "104", name: function}
的問題是,我無法弄清楚如何從刪除函數內部訪問doctorArr當「這個」返回模型。我需要它來移除物品。
就算我給你'this'爲'self',它這會奇蹟般地從陣列中刪除項目仍然會返回模型。 – Norbert