如何确保财产被映射为可观察到的

如何确保财产被映射为可观察到的

问题描述:

所以我有一个视图模型像这样:如何确保财产被映射为可观察到的

​​

在我CSHTML我有以下几点:

var viewModel = ko.mapping.fromJS(@Html.Raw(Model.ToJson())); 

我与这个通知是什么ko.mapping.fromJS绑定作为可观察的情况1。但是,如果设置了情况2,则ko.mapping.fromJS不会将SelectedItem映射为可观察。

如何设置我的代码,以便Case2实现并且ko.mapping.fromJS映射SelectedItem属性?

这里是断码:https://skydrive.live.com/redir?resid=33048714B5BF3B4B!1261

在你的情况,ko.mapping将映射到观察的ItemViewModel的属性,但不是ItemViewModel本身。如果你想ItemViewModel被映射可以定义映射为:

var mapping = { 
      'SelectedItem': { 
       create: function (options) { 
        return ko.observable(options.data); 
       } 
      } 

,并调用JS的转换:

var viewModel = ko.mapping.fromJS(@Html.Raw(Model.ToJson()), mapping); 
+0

VAR映射= { '的SelectedItem':{...做到了。谢谢你是完美的。 – jmogera 2013-02-27 04:13:27

+0

刚刚更新为'SelectedItem',我的错字... – 2013-02-27 06:52:52