我在一个组件中实现了一个自定义函数,该函数从 URL 获取信息并返回一个数组,其中包含正确的名称和链接,以便充当面包屑。问题是该过程的最后一步,应用程序必须在完全不同的 URL 中转换到不同的路由/模型。
如何在最终模板中显示面包屑(在不同的路线中)?
我在一个组件中实现了一个自定义函数,该函数从 URL 获取信息并返回一个数组,其中包含正确的名称和链接,以便充当面包屑。问题是该过程的最后一步,应用程序必须在完全不同的 URL 中转换到不同的路由/模型。
如何在最终模板中显示面包屑(在不同的路线中)?
如果您使用的是 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')),
});