KnockoutJS и внешний JSON

0

В настоящее время я экспериментирую с Knockout JS, чтобы получить поддержку библиотеки и все ее возможности, и я, похоже, столкнулся с стеной с обработкой внешних данных JSON.

В Codepen ниже у меня есть фиктивный наблюдаемый массив, который работает нормально. Ниже прокомментировано, что это фактические данные JSON, с которыми я хочу экспериментировать. Он берет внешний фид с использованием $.GETJSON и отображает его, чтобы отфильтровать результаты, чтобы извлечь только те данные, которые я хочу использовать в своем HTML-шаблоне.

Моя проблема заключается в том, что я не могу заставить внешний JSON привязываться к HTML, поскольку я всегда получаю "треки" не определен, а иногда даже пустую консоль (что всегда полезно).

Может ли кто-нибудь указать мне в правильном направлении, как обращаться с внешним JSON? Я сделал поиск, и я не вижу много информации, посвященной обработке внешнего JSON.

http://codepen.io/anon/pen/Hnamf

  • 1
    Вы можете разместить код
  • 0
    @christiandev christiandev есть кодекс
Показать ещё 1 комментарий
Теги:
knockout.js
knockout-2.0

1 ответ

2
Лучший ответ

Глядя на ваш код, не совсем понятно, как вы хотите, чтобы это работало, но это, безусловно, можно заставить работать. Как быстрая демонстрация, я переместил ваш $.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
             };
        }));
  });

http://codepen.io/anon/pen/HAkhy

Ещё вопросы

Сообщество Overcoder
Наверх
Меню