拿這個例子:在Knockout中從observableArray中移除自我?
var ViewModel = function(data)
{
this.users = ko.mapping.fromJS(data,
{
create: opts => new UserModel(opts.data),
});
}
var UserModel = function(data)
{
ko.mapping.fromJS(data, {}, this);
this.remove = function(user)
{
$.ajax({
type: 'DELETE',
url: API+'user',
data: ko.mapping.toJSON(this),
contentType: 'application/json',
context: this,
success: function(data)
{
// How to remove from array?
this.parent.users.remove(this); // ?
},
});
};
}
<a href="javascript:void(0)" data-bind="click: remove">Remove</a>
有沒有辦法從數組我當成功處理程序被稱爲是刪除「自己」?
或者是將移除方法移到父級並將其綁定到下面的唯一方法?
<a href="javascript:void(0)"
data-bind="click: $parent.remove.bind($parent, $data)>Remove</a>
注:我在類似的問題看這裏,但找不到任何在對這一確切的情況明確的答案。當與ajax請求結合時(即它不應該被刪除,直到成功),是否可以完成,如果沒有,應該如何執行應該是?
我得到一個錯誤說'parent'未在此定義/自。 *理論上應該可以在'this'上得到嗎? – Svish
你試過了什麼樣的?第一種方法?或驗證方法? – jtabuloc
我沒有意識到你的用戶集合來自ViewModel。掛上我會更新它。或者直接將viewModel傳遞給UserModel。這並不理想,只是爲了測試目的,看看會發生什麼。 – jtabuloc