试图转换/映射我的JSON数组中的对象到我的KO可观察函数
trying to convert/map the Objects in my JSON array to my KO observable function
我读取了一个JSON数组,现在我想让数组中的每个对象都是KO可观察对象这样它就可以映射到函数
function Person(data)
{
this.name = ko.observable(data.name);
this.age = ko.observable(data.age);
this.link = ko.observable(data.link);
}
function ViewModel()
{
var self = this;
self.Persons = ko.observableArray([]);
var JSONdataFromServer;
$.getJSON('http://127.0.0.1:8080', function(data) {
self.Persons(data);
for(var k in self.Persons) {
k = $.map(k, function(item) { return new Person(item) });
}
});
}
然而,当我运行这段代码(这只是它的一部分)时,我得到错误"不能使用'in'操作符在G中搜索'0'"。同样,我要做的是将Persons数组中的JSON对象转换为Person KO可观察对象。
self.Persons
是一个observableArray,所以如果你想查看它的内容,你需要调用它:
for (var k in self.Persons())
你做的其他事情让我很困惑。要将JSON对象转换为Person
s的可观察对象,您可能会做这样的事情(取决于数据看起来像什么—您不说):
$.getJSON('http://127.0.0.1:8080', function(data) {
var arrayOfPersons = ko.utils.arrayMap(data, function (item) {
return new Person(item);
});
self.Persons(arrayOfPersons);
});
避免手动映射来自服务器的传入数据。使用ko映射插件。当您的viewModel开始增长时,维护您的客户端viewModel与来自服务器的数据同步是非常困难的,最好利用它来进行映射,如果您需要更多地控制映射应该如何工作,这也是非常灵活的。
相关文章:
- 如何使用ng repeat中的选定输入更新我的对象
- 使用窗口对象练习我的对象文字函数
- 将变量的值分配给我的对象标识符 JSON
- AngularJS element.find更改了我的对象
- 为什么我得到“;不是函数错误”;对于我的对象方法
- 迭代我的对象对象的问题
- Angular没有't在http请求后更新我的对象
- I'我正在努力学习Angular——为什么不;t我的对象没有用ng repeat出现
- ng模型没有更新我的对象值
- Javascript:如何在不复制但链接的情况下将另一个对象 B 的方法混合到我的对象 A
- 处理我的对象的投射到编号
- 如何在数组中设置我的对象
- 为什么我的对象没有在 Angular 的视图中更新
- Ajax 请求不发送我的对象数据
- 填充对象时插入我的对象中的神秘“删除”键
- 如何动态更新我的对象
- 为什么我不能将数组作为成员添加到我的对象中
- Jquery在我的对象中覆盖了我的“this”
- 无法在我的对象中定义方法
- 组合我的对象并获得预期的结果