6

在页面加载时为 emberjs 应用程序引导数据的最佳方式是什么。我知道它很可能会从 data-for 属性或隐藏 div 中的数据获取数据,但是这会在 emberjs 应用程序生命周期中的哪个位置进行呢?

4

1 回答 1

3

您可能正在加载几种不同类型的数据。我一直在使用ember-data模型以及DS.FixtureAdapter(用于静态数据)或DS.RESTAdapter(用于动态数据。

这是一个使用固定装置的小例子:

App.Store = DS.Store.extend({
  revision: 11,
  adapter: 'DS.FixtureAdapter'
});

App.Page = DS.Model.extend({
  title: DS.attr('string')
});

App.Page.FIXTURES = [{
    id: 1,
    title: "Test Title #1"
  }, {
    id: 2,
    title: "Random Title #2"
  }];

在我的(小型)应用程序中,我只是在定义商店和模型后直接加载夹具数据。这适用于简单的一对一关联(想想类型或类别的静态列表)。当使用非固定类型数据时,它只是指定为model路线上的属性,并在需要时加载。

更新

要在页面加载时预加载初始数据(例如,初始页面状态,如loginIn),您可以使用DS.Store#load

Store = DS.Store.create({
  revision: 11
});

Page = DS.Model.extend({
  title: DS.attr('string')
});

Store.load(Page, {id: 1, title: 'Wow Cool Title'});

Store.find(Page, 1).get('title') //=> 'Wow Cool Title'
于 2013-03-14T21:06:24.193 回答