ember-outlet-component v4.1.8
Ember OutletComponent
Everyone knows that Ember controllers are dead. The wise Embereño avoids their use at all costs.
Installation
ember install ember-outlet-componentUsing
OutletComponent provides a top-level routable component that lets you avoid Controllers at all costs.
An OutletComponent behaves identically to a Component with our main differneces:
- An
OutletComponenthas no element (because, what would the tag name for an outlet even be?!?). - Because of the previous point, an
OutletComponenthas no DOM events. - Because of the point two points of ago, it has no lifecycle callebacks like
didInsertElement
To use OutletComponent you'll need to make sure your application is using the resolver provided by ember-outlet-component:
// your-project/resolver.js
import Resolver from "outlet-component/resolver";
export default Resolver;Then, you can generate a new OutletComponent class with
ember generate outlet-component <outlet component name>For example:
ember generate outlet-component applicationWill genrerate a file:
// components/application-outlet.js
import OutletComponent from "outlet-component";
export default OutletComponent.extend();What About Query Params?
Since you still need controllers for query params use in Ember, you might wonder "but what about query params?"
No worries! OutletComponent has you covered in two ways:
- Simply enable the
ember-routing-route-configured-query-paramsfeature (I bet you didn't even know that existed? We created it when we killed controllers.) If you can't Live On The Edge(tm), don't worry:
OutletComponentfully implements the query parameter interface of the oldControllerobjects!``` import OutletComponent from "outlet-component"; export default OutletComponent.extend({ queryParams: ['category'], category: null }); ```Boom.
NOTE: This addon will not work with Pods because Pods are dead
10 years ago