敲除映射无法处理对象数组。
这是我的小提琴http://jsfiddle.net/varunfiddle/03rv2the/
基本上,我尝试将对象数组映射到可观察的数组。
var ViewModel = function() {
var self = this;
var newData =
[{"PersonId":1,"Name":"LoginUser1","OriginalSource":null,"Remarks":null},
{"PersonId":2,"Name":"LoginUser1","OriginalSource":null,"Remarks":null}];
self.persons=ko.mapping.fromJS(newData, {}, self);
};
var myVM = new ViewModel();
ko.applyBindings(myVM);
然后将其绑定到html中
<table>
<tbody data-bind="foreach:persons">
<tr>
<td>
<label data-bind="text:Name"></label>
</td>
</tr>
</tbody>
</table>
我看不到对象数组上发生数据绑定。有解决办法吗?谢谢。
删除对的调用中的第三个参数ko.mapping.fromJS()
(也删除第二个参数,现在不需要)。第三个参数是要添加映射属性的现有对象。您不想那样将数组添加到视图模型中,而只是尝试使用映射的属性创建一个新数组。
self.persons = ko.mapping.fromJS(newData);
如果要使用映射插件添加到视图模型中,则需要创建一个与您要创建的视图模型具有相同结构的对象,然后将其传递给函数(带有第三个参数)。
var ViewModel = function() {
var self = this;
var model = {
persons: [
{"PersonId":1,"Name":"LoginUser1","OriginalSource":null,"Remarks":null},
{"PersonId":2,"Name":"LoginUser1","OriginalSource":null,"Remarks":null}
]
};
ko.mapping.fromJS(model, {}, self);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句