烬。组件之间的通信。面包屑

时间:2016-04-11 13:37:46

标签: ember.js breadcrumbs ember-components

我在一个组件中实现了一个自定义函数,该组件从URL获取信息并返回一个数组,使用正确的名称和链接来表现为面包屑。 问题是,在该过程的最后一步,应用程序必须在完全不同的URL中进行转换到不同的路径/模型。

如何在最终模板中显示痕迹(在不同的路线中)?

1 个答案:

答案 0 :(得分:0)

如果您使用的是EmberSimpleAuth,只需将其存储在会话中:

App.BreadcrumbController = Ember.Controller.extend({

  session: Ember.inject.service(),

  //...

  this.get('session').set('data.breadcrumbs', breadcrumbs)      

});

App.anotherController = Ember.Controller.extend({

   session: Ember.inject.service(),
   breadcrumbs: Ember.computed.alias(this.get('session.data.breadcrumbs')),

});

如果没有,您可以将面包屑数组存储在应用程序控制器中。然后,您可以随时随地使用它。

App.BreadcrumbController = Ember.Controller.extend({

  //inject application controller so you can set a property on it
  application: Ember.inject.controller(),

  //...

  //then once you have the breadcrumbs, store them in the application controller
  application.set('breadcrumbs', breadcrumbs)      

});

App.anotherController = Ember.Controller.extend({

    //inject application controller and get the breadcrumb property
    application: Ember.inject.controller(),
    breadcrumbs: Ember.computed.alias(application.get('breadcrumbs')),

});