lemo-crm/web/app/mixins/components/base-component.js
2017-08-06 19:38:07 +08:00

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'));
}
});