gpt4 book ai didi

javascript - 在 knockout 中从 JSON 对象创建 ko.observableArray

转载 作者:数据小太阳 更新时间:2023-10-29 05:40:48 24 4
gpt4 key购买 nike

我刚开始使用 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 在 View 中(向浏览器)显示它

<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 错误。任何帮助..

最佳答案

尝试声明(在您拥有//数据的地方)

self.allEntries = ko.observableArray([]);

然后在加载...

self.allEntries(result.feed.entries);

关于javascript - 在 knockout 中从 JSON 对象创建 ko.observableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com