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