javascript - KnockoutJS 和外部 JSON

标签 javascript jquery knockout.js knockout-2.0

我目前正在试验 Knockout JS,只是为了掌握该库及其所有功能的窍门,但我似乎在处理外部 JSON 数据方面遇到了困难。

在下面的 Codepen 中,我有一个运行良好的虚拟可观察数组。下面注释掉的是我想要试验的实际 JSON 数据。它需要使用 $.GETJSON 的外部提要并映射该提要来过滤结果,以仅提取我想要在 HTML 模板中使用的数据。

我的问题是,我似乎无法将外部 JSON 绑定(bind)到 HTML,因为我总是得到“轨道”未定义,或者有时甚至是一个空控制台(这总是有帮助的)。

有人能给我指出如何处理外部 JSON 的正确方向吗?我已经进行了搜索,但没有看到太多专门用于处理外部 JSON 的信息。

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

最佳答案

看看你的代码笔,并不完全清楚你希望它如何工作,但它肯定可以工作。就像一个快速演示一样,我将您的 $.getJSON 移动到您的 init 函数中,以便它实际上可以访问 View 模型,然后在回调中设置您的内容获取属性self.tracks。由于您绑定(bind)了“tracks”,我将“title”更改为“tracks”,但您显然可以做任何对您有意义的事情:

 $.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

关于javascript - KnockoutJS 和外部 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373563/

相关文章:

jquery - 如何通过 iFrame 重新加载滚动父页面

jquery-mobile - 带有 KnockoutJS ListView 问题的 jQuery Mobile

javascript - Angular 2 : Function as an @Input-Property

javascript - 如何覆盖谷歌地图中的 KML 颜色?

jquery - 当表单被动态添加到 DOM 时,检测 jQuery 中的表单提交

css - 在 Knockout sortable 的 Move 事件之后更改元素的 CSS

knockout.js - 使用 Knockout-Kendo.js 动态启用/禁用 kendo datepicker

javascript - 删除元素后的 MutationObserver 行为

javascript - 将 DRY 原则应用于此 jQuery 代码

c# - Asp.net MVC 的从右到左 GridView