29 lines
878 B
JavaScript
29 lines
878 B
JavaScript
import Component from '@ember/component';
|
|
import { alias } from '@ember/object/computed';
|
|
import { addObserver } from '@ember/object/observers';
|
|
|
|
export default Component.extend({
|
|
tagName: 'span',
|
|
classNames: ['label', 'label-sm'],
|
|
classNameBindings: ['enabled:label-success:label-warning'],
|
|
name: 'active',
|
|
field: alias('name'),
|
|
didReceiveAttrs() {
|
|
let me = this;
|
|
me._super(...arguments);
|
|
const field = me.getFieldPath();
|
|
me.set('enabled', me.get(field));
|
|
addObserver(me, field, function() {
|
|
me.set('enabled', me.get(field));
|
|
});
|
|
},
|
|
enabledText: '启用',
|
|
disabledText: '禁用',
|
|
'enabled-text': alias('enabledText'),
|
|
'disabled-text': alias('disabledText'),
|
|
getFieldPath() {
|
|
const me = this;
|
|
return 'model.' + (me.get('field') || 'enabled');
|
|
},
|
|
});
|