2012-05-08 106 views
1

显示的数据我有数据从JSON来为:淘汰赛映射插件到表

[ 
    {"ProjectName":"Region1.Site1","Turbine":"T1","Fault":0,"Description":"No Fault"}, 
    {"ProjectName":"Region1.Site1","Turbine":"T2","Fault":0,"Description":"No Fault"}, 
    {"ProjectName":"Region1.Site1","Turbine":"T3","Fault":1,"Description":"In Alarm"}, 
    {"ProjectName":"Region1.Site1","Turbine":"T4","Fault":1,"Description":"In Alarm"}, 
    {"ProjectName":"Region1.Site2","Turbine":"T1","Fault":0,"Description":"No Fault"}, 
    {"ProjectName":"Region1.Site2","Turbine":"T2","Fault":0,"Description":"No Fault"}, 
    {"ProjectName":"Region1.Site2","Turbine":"T3","Fault":1,"Description":"In Alarm"}, 
    {"ProjectName":"Region1.Site2","Turbine":"T4","Fault":1,"Description":"In Alarm"} 
] 

我想显示此数据插入到表与表头为Project NameTurbineFaultDescription

我正在使用Knockout.js和mapping plugin以及。这是一个JSFiddle to show what I tried so far

我主要有两个目标

  1. 将这个数据到表
  2. 更新的行每当故障状态的变化。每行都由ProjectName和Turbine的组合唯一标识。

由于桑迪普。

我遇到了这个问题,我尝试使用映射插件。

var viewModel = {};

viewModel.Stats = ko.mapping.fromJS(data);

能否请你告诉我什么,我做错了。另外,当我收到数据更新时,以下声明是否有效?

ko.mapping.fromJS(data,viewModel);

由于映射插件没有工作,我不得不使用ko.utils.Arraymap功能。

感谢

回答

1

这是工作副本。 Link

代码被破坏 - 没有匹配大括号和引用“数据”而不是统计信息。

0

看起来你有一些额外的括号和圆括号(数据JSON定义后和applyBindings)。除此之外,您只需将“foreach:Data”更改为“foreach:Stats”,以便您指定viewModel的数据。

0

下面是我在做什么的例子是几乎同样的事情:

var UserRecord = function (data) { 
    ko.mapping.fromJS(data, {}, this); 
}; 

var mapping = { 
    key: function (data) { 
     return ko.utils.unwrapObservable(data.Id); 
    }, 
    create: function (options) { 
     return new UserRecord(options.data); 
    } 
}; 


function UserListViewModel() { 
    this.users = ko.mapping.fromJS(data, mapping) 
} 

它不是工作的原因是因为你有一个数组,你必须告诉KO映射每个阵列中的每个属性项目需要是可观察的。