ember.js 在Ember Addon中实现路由

iovurdzv  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(211)

我是新的ember。我计划创建一个插件,以共享整个应用程序。我的插件有屏幕导航。我不知道如何应用路线或实现路线内ember插件。而且,我想分享插件与消费应用程序也。有人能建议任何简单的例子,如何实现?

rjzwgtxy

rjzwgtxy1#

选择Ember Add-on来分享功能是一个不错的选择。然而,Add-on主要是用来添加/增强更多的focused functionalities
为了在应用程序之间重用/共享页面(路由),Ember有一个特定的解决方案,称为Ember-Engines
根据官方指南,
从用户的Angular 来看,引擎允许将多个逻辑应用程序组合到单个应用程序中。
因此,我们可以在Engines中拥有多个页面(类似于任何其他独立的Ember应用程序),并轻松地将这些页面挂载到主机应用程序中。

fzsnzjdm

fzsnzjdm2#

Ember Addon的app文件夹与消费应用程序的app文件夹合并。虽然这主要用于提供组件和服务,但它对路线、控制器和路线模板的作用是相同的。通过Ember Addon共享提供路线的唯一技巧是注册它们。
有两种解决方案可以注册由Ember Addon提供的路线:
1.从Ember Addon中导出一个方法,使用该方法的应用程序应使用该方法在路由器中注册路由。
1.在Addon提供的示例初始化程序中导入应用程序路由器,并在其上注册路由。
第一种方法如下所示:
第一个
第二种方法稍微复杂一点,但不需要对使用的应用程序进行任何更改。您可能会认为这是一种优势,或者是应该避免的令人困惑的魔法。

// in addon: /app/instance-initaliziers/my-addon.js

// as this is merged with application's app tree, we can import files from application
import ApplicationRouter from '../router';

export function initialize() {
  // register as you would do in app/router.js
  ApplicationRouter.map(function() {
    this.route('foo');
  });
}

export default {
  initialize
};

相关问题