我正在尝试使用成员验证。我添加了验证。在我的控制器中Mixin,但它会导致错误。这是我的控制器代码:
var loanController = Ember.ObjectController.extend(Ember.Validations.Mixin);
loanController.reopen({
borrowingLimits:null,
industries:null,
actions:{
submitAction:function(){
var model=this.get('model');
if (model!=null) {
var controller = this;
$.ajax({
type :'post',
async:false,
url : '/api/v1/loanapplication/',
data: JSON.stringify(model),
contentType: "application/json; charset=utf-8"
}).done(function (data) {
controller.transitionToRoute('upload-documents',data);
});
}
}
},
validations: {
applicantFirstName: {
presence: true,
length: { minimum: 5 }
}
}
});
export default loanController;
如何解决这个问题?
我已经添加了导入
app.import('vendor/ember-validations/packages/ember-validations/lib/core.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/defaultMessages.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/errors.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/main.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/mixin.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/validatorNamespaces.js');
app.import('vendor/ember-validations/packages/ember-validations/lib/validators.js');
看起来你可能不正确地导入了成员验证,但根本原因是你没有将mixin导入到控制器文件中。下面的命令可以工作。
在你的Bower.json
文件:
{
"name": "app-name",
"dependencies": {
"ember-validations": "http://builds.dockyard.com.s3.amazonaws.com/ember-validations/ember-validations-latest.min.js",
}
}
运行bower install
在你的Brofile.js
:
app.import('vendor/ember-validations/index.js');
In mixins/form-saving.js
:
export default Em.Mixin.create(
Em.Validations.Mixin, {
// Your common form saving functions and properties
});
In controllers/loan.js
:
import FormSaving from 'app-name/mixins/form-saving';
export default Em.ObjectController.extend(
FormSaving, {
// Methods and Properties here
});
导入库了吗?
假设您使用的是ember-cli:
// in Brocfile.js after importing ember.js
app.import('vendor/path/to/ember-validations');