在EmberJS 1.0.0中处理异步模型数据

时间:2014-07-28 14:40:28

标签: jquery asynchronous ember.js models legacy-code

我正在使用EmberJS v1.0.0-pre.4来开展一个项目......老了是的......但是因为它的工作......我升级时遇到了问题(不确定公司是否也想要),我想我必须找到一个解决方法。

我只是想异步使用我的模型的加载数据...我相信最新版本,我可以为我的模型返回一个承诺......

App.XRoute = Ember.Route.extend({
    model: function() {
        return $.getJSON(...);
    }
});

但是对于旧版本,它似乎不起作用......那么我应该如何处理异步数据呢?

2 个答案:

答案 0 :(得分:1)

评论太长了,我很乐意继续与你合作,但它似乎工作1.0前4

 App = Ember.Application.create();

 App.Router.map(function () {
     // put your routes here
 });

 App.IndexRoute = Ember.Route.extend({
    model: function () {
      return new Promise(function (resolve) {
        setTimeout(function () {
          resolve(['red', 'yellow', 'blue']);
        }, 2000); 
      });
    }
 });

答案 1 :(得分:1)

有一些jQuery承诺 - 实现与Ember不能很好地工作,但我不能记住它现在的情况......

然而,您可以使用这个名为ic-ajax的好包装器。它支持与jQuery.ajax相同的语法,但使用Ember使用的RSVP-library将其包含在承诺中。它也只增加了大约4kb的最小化,所以它不会让你的项目规模飙升。

到目前为止,我一直在使用两个Ember项目,现在它也包含在ember-cli中(我与ic-ajax项目或它的开发人员没有任何关联,我认为它很棒)。