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
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
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).
Cześć, dziękuję za odpowiedź. Ale w jaki sposób mogę uzyskać dostęp do obiektu Router w inicjalizatorze? –
Obiekt routera wyeksportowany przez app/router.js. Kod został zaktualizowany. – ykaragol
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