ember-controller-lifecycle
v1.0.0
Published
Add route lifecycle hooks to a route's controller
Downloads
241
Readme
ember-controller-lifecycle
Add route lifecycle hooks to a route's controller
Motivation
If you want to reset state on your controller, you must override route hooks/events like so:
import Ember from 'ember';
export default Ember.Route.extend({
setupController(controller) {
this._super(...arguments);
controller.set('foo', null);
controller.set('bar', Ember.A());
}
});This couples a controller's private state to its route's code. You might then create a convention where you put controller setup code in its own function that you call from the route:
import Ember from 'ember';
export default Ember.Route.extend({
setupController(controller) {
this._super(...arguments);
controller.setup();
}
});import Ember from 'ember';
export default Ember.Controller.extend({
setup() {
this.set('foo', null);
this.set('bar', Ember.A());
}
});This addon functions the same way, it just eliminates the boilerplate by calling the hooks automatically.
Installation
ember install ember-controller-lifecycleUsage
import Ember from 'ember';
export default Ember.Controller.extend({
// https://www.emberjs.com/api/classes/Ember.Route.html#method_setupController
setup(model) {
},
// https://www.emberjs.com/api/classes/Ember.Route.html#method_resetController
reset(isExiting, transition) {
}
});The hooks are automatically installed into every controller.
Contributing
Installation
git clone <repository-url>cd ember-controller-lifecyclenpm install
Linting
npm run lint:jsnpm run lint:js -- --fix
Running tests
ember test– Runs the test suite on the current Ember versionember test --server– Runs the test suite in "watch mode"ember try:each– Runs the test suite against multiple Ember versions
Running the dummy application
ember serve- Visit the dummy application at http://localhost:4200.
For more information on using ember-cli, visit https://ember-cli.com/.
License
This project is licensed under the MIT License.
