42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import Ember from 'ember';
|
|
import BaseComponentMixin from '../mixins/components/base-component';
|
|
|
|
export default Ember.Component.extend(BaseComponentMixin, {
|
|
'col-width': 6,
|
|
colWidth: Ember.computed.alias('col-width'),
|
|
classNameBindings: ['hasError:has-error'],
|
|
model: Ember.computed.alias('route.controller.model'),
|
|
errors: Ember.computed.alias('route.controller.errors'),
|
|
hasError: Ember.computed('errors', function() {
|
|
return this.get('errors.' + this.get('name'));
|
|
}),
|
|
'error-msg': true,
|
|
errorMsg: Ember.computed.alias('error-msg'),
|
|
'label-class': 'col-xs-12 col-sm-3 col-md-3',
|
|
labelClass: Ember.computed.alias('label-class'),
|
|
'input-class': 'col-xs-12 col-sm-5 col-md-5',
|
|
inputClass: Ember.computed.alias('input-class'),
|
|
'data-scope': 'model',
|
|
dataScope: Ember.computed.alias('data-scope'),
|
|
didReceiveAttrs() {
|
|
let me = this;
|
|
me._super(...arguments);
|
|
let dataScope = me.get('data-scope');
|
|
if ('controller' === dataScope) {
|
|
me.set('dataModel', me.get('route.controller'));
|
|
}
|
|
else if ('route' === dataScope) {
|
|
me.set('dataModel', me.get('route'));
|
|
}
|
|
else {
|
|
me.set('dataModel', me.get('model'));
|
|
}
|
|
},
|
|
getVal() {
|
|
return this.get('dataModel.' + this.get('name'));
|
|
},
|
|
setVal(val) {
|
|
this.set('dataModel.' + this.get('name'), val);
|
|
}
|
|
});
|