Ember.js为{{render}} helper设置模型数据

时间:2014-03-09 11:04:27

标签: ember.js architecture

我正在尝试构建一个将显示多个模型和聚合数据的视图。

enter image description here

在对文档进行一些阅读之后,{{render}}助手可能是构建这样的视图的正确方法。为了正常设置模型,我只需设置一个Route,在其中传递所需的模型数据:

App.BuildingsRoute = Ember.Route.extend({
    model: function() {
         return this.store.find('buildings', '1');
    }
});

但是如果我通过{{render}}帮助器包含模板,则不会调用该路由。我想知道如何为每个{{render}}助手独立地传递不同的模型,包括首先过滤模型?

1 个答案:

答案 0 :(得分:3)

以下内容可能相关:

在您的BuildingsRoute中,您可以拥有所有必需的逻辑来返回所有相关模型,例如:

App.BuildingsRoute = Ember.Route.extend({
    model: function() {
         var self = this;
         return new Em.RSVP.Promise(function (resolve, reject) {
                new Em.RSVP.hash({
                    building: self.store.find('building', params.buildingId),
                    clients: self.store.find('client'),
                    products: self.store.find('product')
                }).then(function (results) {
                   resolve({
                       building: results.building,
                       prods: results.broducts,
                       clients: results.clients,
                       foo: "bar"                            
                   });
                });
          }
  });

有关如何构建和链接这些内容的详细信息,请参阅promises

然后在您的视图中,您可以按如下方式访问这些模型:

{{render 'products' products}}

{{#each product in products}}
   {{render 'product' product}}
{{/each}}