im пытается получить видеопотоки с youtube через функцию поиска. Я нажимаю данные в наблюдаемом файле, но BINDING всегда терпит неудачу.knockoutjs bindind observablearray doent work
у меня есть этот ViewModel так:
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);
});
}
вид s так:
<ul data-bind="foreach: videoFeeds">
<li data-bind="text: title"></li>
</ul>
, как вы можете видеть, я войти в «титул» из каждого канала в консоль, она работает отлично, массив обновляется. Но я все еще не вижу «заголовка» каналов в моем представлении.
Благодарим за помощь.
Вы правы 'videoFeeds(). Push (videoFeed)' была проблемой, спасибо большое за помощь. о читаемости я согласен с вами, это, вероятно, лучший способ сделать это. – dafriskymonkey
Добро пожаловать. Если это решит вашу проблему, отметьте как ответ. Благодаря! –