0

我想知道是否有任何方法可以使用单个对象更新整个视图模型。
例如,说我们的视图模型如下:

    Function ExampleViewModel(){
     this.name = ko.observable();
     this.lastname = ko.observable();
     this.phone = ko.observable();
    }
    var viewmodel = new ViewModel();
    ko.applyBindinings(viewmodel);

然后假设我创建了一个对象,例如:

    var newObject = {name: "newname", lastname: "lastname", phone: 432}

而不是单独设置每个可观察对象,如下所示:

        viewmodel.name(newObject.name);
             or
        viewmodel.name(newObject.name).lastname(newObject.lastname) etc etc

我可以更新整个视图模型吗?

        viewmodel.update(newObject)?
4

1 回答 1

1

只需遍历对象:

for (var key in newObject) {
    if (viewModel[key] && ko.isObservable(viewModel[key])) {
        viewModel[key](newObject[key]);
    }
}
于 2013-02-27T21:06:41.463 回答