2013-05-22 1 views
1

Я порождающий отображение нокаута от модели представления на стороне сервера, используя нижеотображение Нокаут быть сделано только в первый раз

var bindData2ViewModel = function (data) { 
     var rdata = ko.toJSON(data); 
     ko.mapping.fromJSON(rdata, {}, vm.model()); 
     ko.applyBindings(vm); 
    }; 

    var CustomerViewModel = function() { 
     var self = this; 
     self.model = ko.observable({}); 
     return { model: self.model }; 
    }; 

    var vm = new CustomerViewModel(); 

теперь есть еще один вызов, который дает мне данные ... я просто хочу, чтобы связать эти данные в viewmodel на стороне клиента, не меняя привязки ... как это сделать?

var rebindData2ViewModel = function (data) { 
     var rdata = ko.toJSON(data); 
     vm.model.set(rdata); 
     ko.applyBindings(vm); 
    }; 

проверено выше, но не работает ... Каков правильный способ сделать это?

ответ

0

в основном пересвязать данные в существующую модель .. вам просто нужно установить данные, используя угловые скобки .. нет необходимости в JSON и т.д ..., так как данные не должны сама вернуться в JsonResult

var rebindData2ViewModel = function (data) { 
     vm.model(data); 
    };