现在正在工作。以下是此代码的修改版本。 var data = $ .getJSON(“URL”,null,function(result){
var notes = function () {
self = this;
self.notes = ko.observableArray(result);
self.deleteNote = function (note) {
$.ajax({
url: "URL" + this.ID,
dataType: "json",
type: "GET",
success: function (d) {
self.notes.remove(note);
}
});
};
self.addNote = function () {
var note = $("#txtNote").val();
$.ajax({
url: "URL",
type: "POST",
data: { 'note': note },
datatype: "json",
success: function (data) {
self.notes.push({ Description: note, ID: data.ResponseData.id, CreateDate: data.ResponseData.createDate });
}
});
}
}
ko.applyBindings(new notes());
});
谢谢, JSHunjan
答案 0 :(得分:2)
这一行可能是问题
viewModel.notes.remove(this);
this
指向当前函数,因此remove函数不知道要删除的内容。
如果您正在使用click
绑定,我假设您这样做,实际的注释将被传递给该函数,这应该是您的解决方案(未经测试)。我添加了note
变量
removePerson: function (note) {
$.ajax({
url: "URL",
type: "POST",
success: function () {
viewModel.notes.remove(note);
}
})
}
在此处阅读文档:http://knockoutjs.com/documentation/click-binding.html