ember-engines-router-service
v0.6.0
Published
Provides the Router service for ember-engines.
Downloads
21,536
Readme
ember-engines-router-service
This addon provides an API for authoring a Router service used in ember-engines.
Compatibility
- Ember.js v3.12 or above
- Ember CLI v3.24 or above
- Node.js v14 or above
Installation
ember install ember-engines-router-service
Usage
Basically you have the full RouterService API inside each engine. That means you can use APIs such as transitionTo
and isActive
, plus the new "external routing" APIs such as transitionToExternal
and isActiveExternal
which help link externalRoutes
together.
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
import { action } from "@ember/object";
export default class SomeComponent extends Component {
@service router;
@action
transitionToHome() {
this.router.transitionToExternal('other.route');
}
@action
transitionToAdmin() {
this.router.transitionTo('admin.route');
}
@action
redirectToHome() {
this.router.replaceWithExternal('other.route');
}
@action
redirectToLogin() {
this.router.replaceWith('login.route');
}
}
For further documentation on this subject, view the Engine Linking RFC.
TypeScript
The library ships types for TypeScript usage:
import Service, { inject as service } from '@ember/service';
import type EnginesRouterService from 'ember-engines-router-service/services/router';
export default class MyService extends Service {
@service declare router: EnginesRouterService;
doSomeTranstion (): void {
const transition = this.router.transitionToExternal('someRouter');
transition.data.someKey = 'someValue';
}
}
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.