27 lines
771 B
JavaScript
27 lines
771 B
JavaScript
import Helper from '@ember/component/helper';
|
|
import { get, computed } from '@ember/object';
|
|
import { getOwner } from '@ember/application';
|
|
import { assert } from '@ember/debug';
|
|
|
|
export default Helper.extend({
|
|
router: computed(function() {
|
|
return getOwner(this).lookup('router:main');
|
|
}).readOnly(),
|
|
route: computed(function() {
|
|
return this.getRoute(this.get('router.currentRouteName'));
|
|
}).readOnly(),
|
|
getRoute(name) {
|
|
return getOwner(this).lookup('route:' + name);
|
|
},
|
|
compute([attr, routeName]) {
|
|
let route;
|
|
if (routeName) {
|
|
route = this.getRoute(routeName);
|
|
}
|
|
else {
|
|
route = get(this, 'route');
|
|
}
|
|
assert('[ember-route-action-helper] Unable to lookup router', route);
|
|
return get(route, attr);
|
|
}
|
|
}); |