Knockout.js 将javascript数组转换为ko.observearray并绑定到模板

Knockout.js 将javascript数组转换为ko.observearray并绑定到模板,knockout.js,Knockout.js,我想将data.js文件中的javascript数组转换为ko.observable数组,并将其绑定到list标记 HTML 您可以使用knockout的fromJSON函数将JSON字符串转换为object。在您的场景中,您可以执行以下操作: //converting your json string to array of objects var list = ko.fromJSON(data); //creating observable array from array of obj

我想将data.js文件中的javascript数组转换为ko.observable数组,并将其绑定到list标记

HTML


您可以使用knockout的
fromJSON
函数将JSON字符串转换为object。在您的场景中,您可以执行以下操作:

//converting your json string to array of objects
var list = ko.fromJSON(data); 

//creating observable array from array of objects.
var observableList = ko.observableArray(list);  
您还应该检查。

为什么不简单地检查一下:

var list = ko.observableArray(data);
我在构建底层数组时使用这种方法。然后,我一次推送所有的底层。另一个结构可能是:

var list = ko.observableArray([]);
list.push(data);
但是,您可能需要使每个属性都可观察,在这种情况下,您可以按照gaurav的建议使用Knockout映射插件,或者您可以编写自己的映射程序。John Papa在Pluralsight的课程中提供了一个很好的例子:使用HTML5、Web API、Knockout和jQuery的单页应用程序。

简单明了:

var myObservableArray = ko.observableArray(data);
以下是您更新的JSFIDLE:

请注意,在模板中,不应放置:people.firstName
它应该是这里解释的名字:

谢谢你的反馈,Eric。当我试图约束这些价值观时,我仍然面临着一些问题,不确定我做错了什么。我是个新手,你的评论对我很有价值。如果您能给我发送一个基于此场景的工作示例,那就太好了@Vimal我更新了您的fiddle,但我删除了模板绑定,只是为了向您表明
fromJSON()
不是必需的。否则,西蒙·莱瓦瑟的小提琴就可以正常工作了。如果您仍然有问题,请发布一个更完整的代码示例。感谢您的反馈。当我试图约束这些价值观时,我仍然面临着一些问题,不确定我做错了什么。我是个新手,你的评论对我很有价值。如果您能给我发送一个基于此场景的工作示例,那就太好了,谢谢Simon。当我试图约束这些价值观时,我仍然面临着一些问题,不确定我做错了什么。我是个新手,你的评论对我很有价值。如果您能给我发送一个基于此场景的工作示例jsfiddle.net/du3QX,那就太好了
var list = ko.observableArray([]);
list.push(data);
var myObservableArray = ko.observableArray(data);