39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Mixin.create({
|
|
toolService: Ember.inject.service('tool-service'),
|
|
routeName: Ember.computed.alias('router.currentRouteName'),
|
|
'trim-index': true,
|
|
route: Ember.computed('routeName', function() {
|
|
let me = this;
|
|
let routeName = me.get('routeName');
|
|
return me.getRoute(me.get('trim-index') ?
|
|
routeName.replace(/\.index$/, '') : routeName);
|
|
}),
|
|
service: Ember.computed('routeName', function() {
|
|
return this.getService();
|
|
}),
|
|
params: Ember.computed('router.location.lastSetURL', function() {
|
|
let me = this;
|
|
let routeName = me.get('routeName');
|
|
return me.getRouteParams(me.get('trim-index') ?
|
|
routeName.replace(/\.index$/, '') : routeName);
|
|
}),
|
|
getRouteParams(routeName) {
|
|
return this.get('route').paramsFor(routeName);
|
|
},
|
|
getRoute(routeName) {
|
|
return Ember.getOwner(this).lookup(
|
|
'route:' + (routeName || this.get('routeName')));
|
|
},
|
|
getParentRouteName(routeName) {
|
|
return routeName.replace(/\.[^\.]+$/, '');
|
|
},
|
|
getService(name) {
|
|
let me = this;
|
|
return name ? me.get('toolService').getServiceByRouteName(name) :
|
|
me.getRoute().get('service') ||
|
|
me.get('toolService').getServiceByRouteName(me.get('routeName'));
|
|
}
|
|
});
|