将模型与emberjs中的路线相关联

时间:2013-08-15 21:31:53

标签: ember.js ember-data javascript-framework ember-model

正如我所强调的那样,emberjs中的模板从控制器获取数据。因此,掌握model数据并将其呈现给模板是控制器的工作。

文档here将模型与这样的路线相关联:

App.FavoritesRoute = Ember.Route.extend({
  model: function() {
    // the model is an Array of all of the posts
    return App.Post.find();
  }
});

在这种情况下,会自动生成ArrayController


但是,还有setupController功能。那么,我们也可以这样做:

App.FavoritesRoute = Ember.Route.extend({
  setupController: function(controller) {
    controller.set('model', App.Post.find());
  }
});

作为给定here的第一个例子吗?

这两种方式做同样的事情吗?

1 个答案:

答案 0 :(得分:1)

  

这两种方式做同样的事情吗?

几乎。在这两种情况下,控制器的content属性都将设置为App.Post.find()的结果。两者都将工作

也就是说,使用模型钩子是首选方法。如果模型挂钩返回一个promise,路由器将等待它解析,然后再继续。 setupController挂钩不是这种情况。通常你会想避免setupController钩子中的任何异步。