【发布时间】:2012-04-05 12:39:57
【问题描述】:
我刚开始使用 knockout.js,它适用于正常的竞标。我对 observableArray 有疑问。
我想创建一个 observableArray 并为其分配来自 Google Feed API 的 JSON 数据。这是JSON格式https://developers.google.com/feed/v1/devguide#resultJson
google.load("feeds", "1"); // Loads Google Feed API
function FeedViewModel()
{
// Data
var self = this;
self.allEntries = null;
// Example property, and it works
self.feedHead = ko.observable("BBC News");
var feed = new google.feeds.Feed("feeds.feedburner.com/BBCNews");
feed.setResultFormat(google.feeds.Feed.JSON_FORMAT);
feed.includeHistoricalEntries();
feed.setNumEntries(30);
// Loads feed results
feed.load(function (result) {
if (!result.error) {
self.allEntries = ko.observableArray(result.feed.entries);
// accessing the title from here is OK
alert(self.allEntries()[1].title);
}
});
}
在上面的示例中,从 ViewModel 访问数组是可以的,但我需要使用 foreach:allEntries 在视图中(浏览器)显示它
<h2 data-bind="text: feedHead">Latest News</h2>
<!-- ko foreach:allEntries -->
<div class="lists">
<a href="#" data-bind="text: title"></a>
</div>
<!-- /ko -->
但是 ko foreach 循环什么也没有返回。可观察的 feedHead 没问题。
我也没有任何 JS 错误。任何帮助..
【问题讨论】:
-
很确定您需要预先创建数组,然后在您的负载中填写该数组......
标签: javascript json knockout.js google-feed-api