【问题标题】:Ember. Communication between components. Breadcrumbs余烬。组件之间的通信。面包屑
【发布时间】:2016-04-11 13:37:45
【问题描述】:

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

如何在最终模板中显示面包屑(在不同的路径中)?

【问题讨论】:

    标签: ember.js breadcrumbs ember-components


    【解决方案1】:

    如果您使用的是 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')),
    
    });
    

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 1970-01-01
      • 2014-12-21
      • 2019-05-30
      • 2016-06-09
      • 2015-09-18
      • 2016-05-01
      • 2017-09-04
      • 2021-03-02
      相关资源
      最近更新 更多