A case study in community solutions
@trabus
@jakebixby
ember-cli core team alumnus
amateur macro photographer
doggo food balancing enthusiast
I am of the opinion that the ember-route-action-helper addon exemplifies how this process is working for the community
Let's take a look at it!
export Controller.extend({
actions: {
login(username, password) {
this.send('login', username, password);
}
}
}<button {{action "login" userName password}}>Login</button>Controller
Template
export Route.extend({
actions: {
login(username, password) {
// do login stuff
...
this.transitionTo('home');
}
}
}Route
export Route.extend({
actions: {
login(username, password) {
// do login stuff
...
this.transitionTo('home');
}
}
}<button {{route-action "login" userName password}}>Login</button>
{{yield (route-action "login" userName password)}}Route
Template
Router Service
2015
2019
rwjblue's jsbin
Dec 2015
Dockyard releases addon
Feb 2016
Community adopts
closure actions introduced
June 2015
improved actions rfc
May 2014
routeable components rfc
Feb 2015
routeable components
rfc closed
Jan 2018
Dockyard deprecates addon
Feb 2018
route actions
rfc opened
Oct 2018
route actions
rfc closed
Jan 2019
export class Auth extends Service() {
@service router
@action
login(username password) {
// do login stuff
this.router.transitionTo('home');
}
}<Login {{on “click” (fn this.auth.login userName password)}} />export class LoginButton extends Component() {
@service auth
}A paragon of community solutions
(A talk within a talk)
hooman dadman
amateur macro photographer @trabus
doggo food balancing enthusiast @stumpybuns
RFC process
Addon system
Emphasis on primitives
Steering committee
Community involvement
Incremental
approach
Experimentation
Deprecations
Release
train
Editions
@trabus
@jakebixby