更新knockoutjs中的行项目

Updating a row item in knockoutjs

本文关键字:项目 knockoutjs 更新      更新时间:2023-12-10

我对knockoutjs还很陌生。

我的问题是,当在asp.net MVC中使用ajax post-serverside发布项目时,如何更新可观察数组中的项目。

某些值仅在服务器端重新计算。

我需要返回一个新的列表还是只需要从服务器端返回更新的项目。

淘汰赛怎么知道该换哪一项。我在谷歌上搜索过,运气不好。

任何帮助都将不胜感激。谢谢

您需要移动服务器请求的相应结果来绑定observable Array。

示例:viewModel引用将其视为self。

self.tableData = ko.observableArray([{id: 1, name: 'XYZ' , score: 90}, {id: 2, name: 'XZZ' , score: 80}
]);

tableData绑定到html表。

现在您提出ajax请求。然后在成功回调中得到响应。把结果看作结果。TABLEDATA=[{id:3,名称:'QUS',分数:60},{id:4,名称:YYY,分数:70}];

现在我们需要将这些数据移动到我们的self.tableData(result.TABLEDATA)

我希望这对你有帮助。

这取决于更新项中的值是否可观察。如果数组包含纯JavaScript对象,Knockout就无法检测到对它们的更改。

如果数组中的项具有可观察性,则可以。

此示例说明了这一点:http://jsfiddle.net/Quango/27tfmp0o/

self.Items = ko.observableArray([
    { Name: "Plain object", ID: 1},
    { Name: ko.observable("Knockout object"),
     ID: ko.observable(2)
    }
    ]);

第一项是一个普通对象。单击"更改第一个"按钮可更改对象,但屏幕上不会显示任何内容。第二个具有可观察的值,因此单击"更改第二个"会更新项目。

如果你不想使用可观测性,你最好的选择是从数组中删除项目,更改它,然后重新添加它-点击"替换第一个"