将路线添加到 Ember 插件

Add route to Ember Addon

我正在开发 ember 插件,我需要在所有使用该插件的应用程序之间共享一条路径,但我不知道如何实现,也不知道是否可能。我已经在插件中添加了路由,但是使用插件的应用程序看不到这个。有什么建议么? 谢谢!

是的,这是可能的。 你放在插件应用程序目录中的内容将与消费应用程序的应用程序目录合并。 (Resource)将您的路线放入正确的目录。

另一方面,您需要将路由添加到路由器映射中。为此,您可以使用 instance-initializers。也不要忘记将您的实例初始化程序放在您的应用程序目录中。您在初始化函数中需要做的就是调用 Router.map(...) 代码将是这样的:

import Router from '../router';

function initialize(){
  Router.map(function() {
    this.route('yourroute');
  });
}

ps:代码已更新

在 Ember Engines RFC 讨论中,bcardarella 问道,"What's the difference between an Ember Engine and Ember Addon"?在 ef4 说 "The only thing addons can't do is add routes to the router map." 的地方继续讨论(我认为他的意思是自动合并的方式),但是一个替代和示例在 RFC 线程中给出:

https://github.com/emberjs/rfcs/pull/10#issuecomment-60504581 https://github.com/dockyard/ember-admin#usage


因此您可以使用 bcardarella 建议的解决方法。或者,您可以尝试 Ember 引擎(它也在插件包中提供)。