0
即時通訊嘗試通過'搜索'功能從YouTube獲取視頻訂閱源。我將數據推入可觀察數組中,但BINDING總是失敗。knockoutjs bindind observablearray doent work
我有這個視圖模型是這樣的:
var videoFeeds = ko.observableArray();
var vm = {
videoFeeds: videoFeeds,
search: search
};
function search(value) {
value = value.toLowerCase().replace(/\s+/g, '+');
var options = {
url: 'https://gdata.youtube.com/feeds/api/videos/?q=' + value + '&max-results=10&alt=json&v=2',
method: 'GET',
dataType: 'jsonp'
};
$.ajax(options)
.done(function (data) {
videoFeeds([]);
for (var k in data.feed.entry)
{
var videoFeed = {
title : data.feed.entry[k].media$group.media$title.$t,
id : data.feed.entry[k].media$group.yt$videoid.$t,
author: data.feed.entry[k].author[0].name.$t
};
videoFeeds().push(videoFeed);
}
for (var k in videoFeeds())
{
console.log('title : ' + videoFeeds()[k].title);
}
})
.fail(function (err) {
console.log(err);
});
}
認爲就像這樣:
<ul data-bind="foreach: videoFeeds">
<li data-bind="text: title"></li>
</ul>
,你可以看到我日誌「標題」每飼料到控制檯,它的工作原理很好,數組已更新。但在我看來,我仍然無法看到Feed的「標題」。
感謝您的幫助。
你說得對'videoFeeds()。push(videoFeed)'是個問題,非常感謝你的幫助。關於可讀性,我同意你的看法,這可能是最好的辦法。 – dafriskymonkey
不客氣。如果這解決了您的問題,請標記爲答案。謝謝! –