Nanometers Per Millisecond

    ember-controller-lifecycle

    1.0.0 • Public • Published

    ember-controller-lifecycle

    Greenkeeper badge npm version Build Status Ember Version

    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-lifecycle
    

    Usage

    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-lifecycle
    • npm install

    Linting

    • npm run lint:js
    • npm run lint:js -- --fix

    Running tests

    • ember test – Runs the test suite on the current Ember version
    • ember test --server – Runs the test suite in "watch mode"
    • ember try:each – Runs the test suite against multiple Ember versions

    Running the dummy application

    For more information on using ember-cli, visit https://ember-cli.com/.

    License

    This project is licensed under the MIT License.

    Keywords

    Install

    npm i ember-controller-lifecycle

    DownloadsWeekly Downloads

    103

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    6.56 kB

    Total Files

    9

    Last publish

    Collaborators

    • kellyselden