В настоящее время я экспериментирую с Knockout JS, чтобы получить поддержку библиотеки и все ее возможности, и я, похоже, столкнулся с стеной с обработкой внешних данных JSON.
В Codepen ниже у меня есть фиктивный наблюдаемый массив, который работает нормально. Ниже прокомментировано, что это фактические данные JSON, с которыми я хочу экспериментировать. Он берет внешний фид с использованием $.GETJSON и отображает его, чтобы отфильтровать результаты, чтобы извлечь только те данные, которые я хочу использовать в своем HTML-шаблоне.
Моя проблема заключается в том, что я не могу заставить внешний JSON привязываться к HTML, поскольку я всегда получаю "треки" не определен, а иногда даже пустую консоль (что всегда полезно).
Может ли кто-нибудь указать мне в правильном направлении, как обращаться с внешним JSON? Я сделал поиск, и я не вижу много информации, посвященной обработке внешнего JSON.
Глядя на ваш код, не совсем понятно, как вы хотите, чтобы это работало, но это, безусловно, можно заставить работать. Как быстрая демонстрация, я переместил ваш $.getJSON
внутри вашей функции init
так, чтобы он действительно имел доступ к модели представления, а затем в self.tracks
установил, что вы получаете в свойстве self.tracks
. Поскольку вы привязывали "дорожки", я сменил "title" на "треки", но вы, очевидно, можете делать все, что имеет для вас смысл:
$.getJSON('http://api.soundcloud.com/users/guy-j/tracks.json?client_id=YOUR_CLIENT_ID', {limit: 200}, function(data) {
vm.tracks($.map(data, function (track) {
return {
artwork: track.artwork_url,
duration: track.duration,
permalink: track.permalink_url,
listens: track.playback_count,
stream: track.stream_url,
track: track.title
};
}));
});