1

我刚开始玩淘汰赛,我有一个问题。以下是部分代码:

function Task(data) {
    var self = this;
    self.name = ko.observable(data.name);
}

function ViewModel() {
    self.taskArr = ko.observableArray([
    // some default data
    new Task({ name: "to-do 1"}),
    new Task({ name: "to-do 2"}),
    new Task({ name: "to-do 3"})
]);

基本上,我试图通过console.log(). 但是当我使用时,console.log(self.taskArr());我得到[Task, Task, Task]了结果。

使用self.taskArr()[0].name只会得到第一个结果,而不是全部。

4

2 回答 2

2

为了显示可观察数组的数据,您必须使用 ko.toJSON 函数,如下所示:

console.log(ko.toJSON(self.taskArr()));

这将输出:

[{"name":"to-do 1"},{"name":"to-do 2"},{"name":"to-do 3"}] 

更多信息在这里: http: //knockoutjs.com/documentation/json-data.html

于 2012-12-07T17:02:59.677 回答
1

尝试将 Task 对象转换为 JSON 字符串:

    console.log(JSON.stringify(self.taskArr()));
于 2012-12-07T01:39:50.083 回答