如何在我的JSON数据中为KO提供一个数组

时间:2011-09-21 19:24:28

标签: knockout.js

如何在JSON数据中访问内部数组?我只显示Scores中的第一个元素,真实数据中有很多元素。我是否真的需要手动迭代initialData才能获得这个内部数组?

var initialData = {
    "DateId": 32,
    "Scores": [{
        "Alias": "Joyce",
        "MemberId": 11,
        "Game1": 220
    }...]
};
var theScores = initialData.Scores;
var viewModel = {
    scores: ko.observableArray(theScores)
};

1 个答案:

答案 0 :(得分:1)

scores现在是一个可观察的阵营。要访问底层数组,您需要检索像viewModel.scores()这样的observable的值。

observableArrays确实添加了大部分数组方法,因此您可以直接在observableArray上执行pushsplice之类的操作。这将执行操作,然后通知任何订阅者有更改。

所以,基本上如果你想在firebug中吐出你的数组,那么就做viewModel.scores()。解开结构中所有可观察对象的一个​​方便技巧是ko.toJS(viewModel)。这将为您提供一个纯JavaScript对象。