异步更新EmberJS夹具适配器

时间:2013-07-23 23:30:33

标签: javascript ember.js handlebars.js

我有一个链接表,我试图从外部JSON文件中提取。一些简单的HTML和Handlebars:

<table class="table">
  <thead>
    <tr><th>Links</th></tr>
  </thead>
  {{#each model}}
  <tr><td>
    <a target="_blank" {{bindAttr href="url"}}>{{title}}</a>
  </td></tr>
  {{/each}}
</table>

从我的app.js开始,我试图将JSON异步加载到我的Fixture Adapter中:

var externalLinksJSON = [{
    id: 0
}];

$.getJSON('externalLinks.json', function(data) {
    externalLinksJSON = data;
})
.fail(function() { console.error("There was an error loading externalLinks.json"); });

App.ExternalLink.FIXTURES = externalLinksJSON;

调试JavaScript显示externalLinksJSON变量已成功更新,但EmberJS并未使用新获取的JSON更新HTML。我试图避免使用同步调用阻止浏览器。 EmberJS中是否有一种方法可以绑定灯具,以便在值发生变化时更新?

1 个答案:

答案 0 :(得分:1)

我认为Fixtures适配器用于客户端javascript中定义的静态测试数据,所以我担心的是它是否设计为在应用程序js加载后更新..您是否尝试过将Fixture数据置于客户端以查看这是不是问题?

来自Ember site

  

Fixtures是一种将样本数据放入应用程序之前的方法   将应用程序连接到长期持久性。

也许尝试使用Ember Data的REST适配器,或者without Ember Data处理API调用。