2016-08-18 12 views
5

rozwijam dodatek ember i muszę udostępnić jedną trasę pomiędzy wszystkimi aplikacjami, które używają tego dodatku, ale nie wiem, jak to osiągnąć lub jeśli jest to możliwe. Już dodałem trasy w addonie, ale aplikacja, która obsługuje addon, tego nie widzi. Jakieś sugestie? Dzięki!Dodaj trasę do Ember Addon

Odpowiedz

5

Tak, jest to możliwe. To, co umieścisz w katalogu aplikacji dodatku, zostanie scalone z katalogiem aplikacji aplikacji. (Resource) Ustaw trasy w odpowiednich katalogach.

Z drugiej strony, musisz dodać trasy do mapowania routera. W tym celu można użyć instance-initializers. Nie zapomnij również umieścić inicjalizatorów instancji w katalogu aplikacji. Wszystko, co trzeba zrobić w funkcji inicjatora dzwoni Router.map(...) Kod będzie coś takiego:

import Router from '../router'; 

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

ps: Kod aktualizowane

+0

Cześć, dziękuję za odpowiedź. Ale w jaki sposób mogę uzyskać dostęp do obiektu Router w inicjalizatorze? –

+0

Obiekt routera wyeksportowany przez app/router.js. Kod został zaktualizowany. – ykaragol

+0

Należy pamiętać, że: To nie jest konieczne, aby to zrobić, użytkownicy dodatków mogą to zrobić. Ale jeśli chcesz go wymusić, lub jeśli chcesz zapobiec brakowi przez użytkowników; możesz użyć w ten sposób. – ykaragol

0

W dyskusji Silniki RFC Ember, bcardarella pyta, " Jaka jest różnica między Ember Engine i Ember Addon "? Dyskusja trwa nadal, gdy ef4 mówi: "Jedynymi dodatkami, których nie można zrobić, jest dodanie tras do mapy routera." (myślę, że oznacza on w automatycznie scalone sposób), jednak alternatywą i przykład jest podany w wątku RFC:

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


Tak więc można stosować metodę obejście zaproponowaną przez bcardarella. Lub możesz wypróbować Ember Engines (który jest również dostarczany w pakiecie Addon).

Powiązane problemy