43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import Ember from 'ember';
|
|
import FormForComponent from './form-for';
|
|
|
|
export default Ember.Component.extend({
|
|
classNames: 'form-field input',
|
|
type: 'text',
|
|
|
|
model: Ember.computed.alias('parentView.for'),
|
|
|
|
didInsertElement() {
|
|
Ember.run.scheduleOnce('afterRender', () => {
|
|
var parentView = this.get('parentView');
|
|
var elementId = this.get('elementId');
|
|
Ember.assert("FormFieldComponent (element ID: " + elementId + ") must have a parent view in order to yield.", parentView);
|
|
Ember.assert("FormFieldComponent (element ID: " + elementId + ") should be inside a FormForComponent.", FormForComponent.detectInstance(parentView));
|
|
});
|
|
},
|
|
|
|
|
|
hasError: Ember.computed('model.errors.[]', function() {
|
|
var ref;
|
|
if ((ref = this.get('model.errors')) != null) {
|
|
return ref.has(this.get('for'));
|
|
} else {
|
|
return false;
|
|
}
|
|
}),
|
|
|
|
errorClass: Ember.computed('hasError', function() {
|
|
if (this.get('hasError')) {
|
|
return 'error';
|
|
} else {
|
|
return '';
|
|
}
|
|
}),
|
|
|
|
errors: Ember.computed('model.errors.[]', function() {
|
|
var errors = this.get('model.errors');
|
|
return errors.errorsFor(this.get('for')).mapBy('message').join(', ');
|
|
})
|
|
|
|
});
|