下面是我的javascript加载模型,我把它绑定到下拉列表和表格来显示数据。它可以工作并显示数据。
var _observableViewModel = null;
$(document).ready(function () {
var jsonModel = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model))';
_observableViewModel = ko.mapping.fromJSON(jsonModel);
ko.applyBindings(_observableViewModel);
});
一旦用户从下拉列表中选择一个项目,我就会调用一个返回jsonresult的ajax函数,并希望更新viewmodel并更新表格。我试过下面的东西,但没有效果。 我正在使用mvc。 谢谢你的帮助!
function GetData() {
$.getJSON("/Home/Test", function (data) {
ko.mapping.updateModel(data);
})
答案 0 :(得分:1)
因为你已经在使用ko.mapping,所以你真的应该使用指定目标的映射重载:
ko.mapping.fromJSON(jsonModel, {}, _observableViewModel)
它将像以前一样更新observable,并调用可观察的valueWillMutate / valueHasMutated方法来更新UI。