這個問題是關於特定的插件--embe-cli-simple-validation。使用ember-simple-validaiton驗證hasMany關係上的屬性
讓我們假設有兩種型號
User = DS.Model.extend({
name: DS.attr()
emails: DS.hasMany('email')
})
Email = DS.Model.extend({
address: DS.attr()
emails: DS.belongsTo('user')
})
和用戶動態地創建電子郵件:
<button {{action 'createEmail'}}>Add Email</button>
{{#each model.emails as |email index|}}
{{input value=email.address}}
{{/each}}
是有可能使用的餘燼,簡單validaiton在這種情況下對驗證地址的存在每封電子郵件?
我試着去與validateEach
但https://github.com/toranb/ember-cli-simple-validation/blob/master/addon/mixins/validate.js#L66
控制器上得到一個Error while processing route: profile self.get(...).forEach is not a function TypeError: self.get(...).forEach is not a function
錯誤:
import Ember from 'ember';
import {ValidationMixin, validateEach} from "ember-cli-simple-validation/mixins/validate";
var isLegit = function(address) {
return address && address.length > 3;
};
export default Ember.Controller.extend(ValidationMixin, {
emailAddressValidation: validateEach("model.emails", isLegit),
actions: {
createChildren: function(type) {
this.store.createRecord(type, {profile: this.get('model')});
},
});
模板:
型號:
import Ember from 'ember';
import DS from 'ember-data';
export default DS.Model.extend{
address: DS.attr(''),
kind: DS.attr(''),
contactable: DS.belongsTo('contactable', { polymorphic: true, inverse: 'emails', async: false }),
kindIsPrimed: false,
kindChanged: Ember.observer('kind', function() {
this.set('kindIsPrimed', true);
}),
addressIsPrimed: false,
addressChanged: Ember.observer('address', function() {
this.set('addressIsPrimed', true);
})
});