在单个模板上从多个路线渲染模板/组件

时间:2015-08-12 18:44:38

标签: templates ember.js routes

我一直在倾向于Ember的文档,虽然他们做得很好,但他们似乎缺乏将所有部分组合在一起的食谱。如果我有一个可以添加到我的购物车的商品列表,我正在尝试构建一个列出商品的页面(这已经完成并正常工作)但我想要一个侧边栏,显示我购物车中的所有商品。

我有以下路线:

export default Router.map(function() {
    this.route('index');
    this.route('items');
    this.route('cart');
});

export default Ember.Route.extend({
    model() {
        return this.store.find('item');
    }
});

export default Ember.Route.extend({
    model() {
       return this.store.find('cart');
    }
});

现在,我不知道如何在一个模板上展示我的商品和购物车;实质上,为单个模板/

调用2个路由

2 个答案:

答案 0 :(得分:2)

这是使用数据获取组件的好例子。

在我看来,通过路由检索的数据是由URL引导的数据(在您的情况下我怀疑它是items)。购物车更像是与网站无关的状态。

我会构建一个CartComponent,它将自己的store实例作为服务注入。

顺便说一下,我最近写过这个确切的情况。如果您有兴趣继续这条路线(没有双关语!),请查看http://emberigniter.com/should-components-load-data/

答案 1 :(得分:1)

您可以使用whereKey:matchesQuery:在路线中引用其他路线的模型。

例如,您可以执行以下操作:

modelFor

文档链接:http://emberjs.com/api/classes/Ember.Route.html#method_modelFor