-1

下面是我加载模型的 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 函数,并希望更新视图模型并更新表。我在下面尝试了一些方法,但没有效果。我正在使用 mvc。谢谢您的帮助!

 function GetData() {

            $.getJSON("/Home/Test", function (data) {

                ko.mapping.updateModel(data);


            }) 
4

1 回答 1

1

由于您已经在使用 ko.mapping ,因此您确实应该使用指定目标的映射重载:

ko.mapping.fromJSON(jsonModel, {}, _observableViewModel)

它将像以前一样更新可观察对象,并调用可观察对象的 valueWillMutate / valueHasMutated 方法来更新 UI。

于 2013-10-31T20:37:31.277 回答