【问题标题】:knockout mapper doesn't work properly淘汰赛映射器无法正常工作
【发布时间】:2014-07-19 10:39:29
【问题描述】:

我浏览了很多淘汰文章,但我未能将 json 对象下方映射到淘汰视图模型

{
   "VehicleModels":[
      {
         "Name":"Model 1",
         "Model":{
            "MakeName":"Ford"
         },
         "Styles":[
            {
               "StockImage":"http://google.com"
            }
         ]
      },
      {
         "Name":"Model 2",
         "Model":{
            "MakeName":"Ford"
         },
         "Styles":[
            {
               "StockImage":"http://bing.com"
            }
         ]
      }
   ]
}

这是我的 jsfiddle 代码jsfiddle Link

【问题讨论】:

  • 请添加相关映射代码和标记
  • 同时发布你的映射插件实现
  • 这是我的 jsfiddle 代码jsfiddle.net/ENMGp/369

标签: jquery asp.net-mvc knockout.js knockout-mapping-plugin knockout-3.0


【解决方案1】:

好的,我已经更新了小提琴:

基本上:

var mapping = {
    'Styles': {
        create: function (options) { // I fiddled with this, play around with it
            var self = options.data;
                self.stockimage = ko.observable();
                return self;
        }
    }
};

var data = {"VehicleModels":[{"Name":"Model 1","Model":{"MakeName":"Ford"},"Styles":[{"StockImage":"http://google.com"}]},{"Name":"Model 2","Model":{"MakeName":"Ford"},"Styles":[{"StockImage":"http://bing.com"}]}]};

var viewModel = ko.mapping.fromJS(data,mapping); // Here you did not need to put this as the 3rd parameter

ko.applyBindings(viewModel); // you need to apply the bindings at some point

最后,您尝试为跨度指定一个值:

<span data-bind='value: Name' />

跨度没有值我认为你想要文本:

<span data-bind='text: Name' />

【讨论】:

  • 感谢您的回复我仍然无法将样式数组映射到 html 视图 jsfiddle.net/ENMGp/430 如果可以请帮助我
猜你喜欢
  • 2013-04-21
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 2012-06-08
  • 1970-01-01
  • 2017-06-18
相关资源
最近更新 更多