乡亲
我正在尝试显示内联表单来更新记录。请 在此处查看小提琴
SetAcceptItem方法工作正常,我可以通过 Ajax 更新数据库记录,并且页面加载后修改的值显示在屏幕上。
但是更新的值没有被观察到并重新显示在屏幕上。我不确定这里有什么问题!
我想在不重新加载页面的情况下在屏幕上显示更新的值。
item.update(edited.title)在SetAcceptItem更新值。
Item = function (data) {
    var self = this;
    self.title = ko.observable(data.title);
    self.searchTerm = ko.observable(data.searchTerm);
    self.update = function (data) {
        self.title(data.title);
       self.searchTerm(data.searchTerm);
    };
};
我的项目中的 Ajax 代码
        data: sentData,
        success: function (data) {
            //load data
            var recData = data;
            self.item(recData);
        },
        error: function (errorMessage) {
        }
让我知道是否需要添加更多详细信息
编辑
这是我的KO 代码,只是想知道为什么 item.update(edited);没有在 UI 上更新值
Item = function (data) {
    var self = this;
    self.title = ko.observable(data.title);
    self.searchTerm = ko.observable(data.searchTerm);
    self.update = function (data) {
        self.title(data.title);
        self.searchTerm(data.searchTerm);
        alert(self.title());
    };
};
var ViewModel = function (items) {
    var self = this;
    self.items = ko.observableArray(ko.utils.arrayMap(items, function (data) {
        return new Item(data);
    }));
    self.TempItem ;
    //selected item
    self.selectedItem = ko.observable();
    self.itemForEditing = ko.observable();
    this.GetSelectItem = function (item) {
        self.selectedItem(item);
        self.itemForEditing(new Item(ko.toJS(item)));
        //self.itemForEditing(item);
    };
    this.SetAcceptItem = function (item) {
        self.TempItem = item;
        var selected = ko.toJS(self.selectedItem());
        var edited = ko.toJS(self.itemForEditing());
        //alert(self.TempItem.title());  //edited value
        //alert(selected.title);  //old value
        //alert(edited.title); //edited value
        //alert(selected.title);  //? it is old  value
        item.update(edited);
        //write ajax query  here to udpate in database
        self.itemForEditing(null);
    };
    this.RemoveItem = function () {
        self.selectedItem(null);
        self.itemForEditing(null);
    };
};
ko.applyBindings(new ViewModel([{
    title: "walls",
    searchTerm: "walls1"
}, {
    title: "health",
    searchTerm: "health2"
}]));