2016-08-18 90 views
5

我正在開發的燼插件,我需要共享使用此插件的所有應用程序之間的一條路線,但我不知道如何實現,或者如果它甚至可能。我已經在addon中添加了路由,但是counsume插件的應用沒有看到這個。有什麼建議麼? 謝謝!添加路由到Ember插件

回答

5

是的,這是可能的。你放在你的插件的應用程序目錄中將與消費應用程序的應用程序目錄合併。 (Resource)將您的路線放入正確的目錄。

另一方面,您需要將路由添加到路由器映射。您可以使用instance-initializers來達到此目的。也不要忘記將你的實例初始化器放在你的應用程序目錄中。所有你需要在你的初始化函數做的就是調用Router.map(...)的代碼將是類似的東西:

import Router from '../router'; 

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

PS:代碼更新

+0

嗨,謝謝你的回覆。但是我怎樣才能訪問初始化程序中的路由器對象? –

+0

由app/router.js導出的路由器對象。代碼已更新。 – ykaragol

+0

請注意:這不是你必須做的,插件用戶可以做到這一點。但是,如果你想強制它,或者如果你想防止用戶錯過;你可以用這種方式。 – ykaragol

0

在灰燼發動機RFC討論,bcardarella,問道:「 Ember Engine和Ember Addon之間的區別是什麼「?討論繼續在ef4所說的地方,「插件不能做的唯一事情就是將路由添加到路由器映射中。」,(我想他是指在一個自動合併的方式),但替代和例子在RFC線程給出:

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


因此,你可以使用所建議的解決辦法的辦法bcardarella。或者,您可以嘗試Ember Engines(也可以通過Addon軟件包交付)。