Validation 无法使余烬验证正常工作

Validation 无法使余烬验证正常工作,validation,ember.js,Validation,Ember.js,由于在撰写本文时,Ember不支持开箱即用的表单验证,因此我正在寻找一种验证表单的方法。我遇到了船坞,大家一致认为这是EmberJS中表单验证的goto模块 我正在努力让它工作,但我在开始工作时遇到了一些困难 我没有使用文档中引用的Ember CLI,因此我从下载了一个编译的Ember-validations.js,并将Ember-validations.js包含在我的apps js文件中 文档现在说要将validations.mixin传递到控制器中: 所以我使用: App.Memberadd

由于在撰写本文时,Ember不支持开箱即用的表单验证,因此我正在寻找一种验证表单的方法。我遇到了船坞,大家一致认为这是EmberJS中表单验证的goto模块

我正在努力让它工作,但我在开始工作时遇到了一些困难

我没有使用文档中引用的Ember CLI,因此我从下载了一个编译的Ember-validations.js,并将Ember-validations.js包含在我的apps js文件中

文档现在说要将validations.mixin传递到控制器中:

所以我使用:

App.MemberaddController = App.FamilyController.extend(EmberValidations.Mixin,{
    needs: ["family","notifications"],
    familyController: Em.computed.alias('controllers.family'),
    notifications: Em.computed.alias('controllers.notifications'),

    validations: {
        firstname: {
            presence: true,
            presence : {message: 'mag niet leeg zijn'}
        }
    },

    init: function() {
        this.set('familyController.pageTitle', "Gezinslid toevoegen");
    },

    <etc...>

}
查看ember-validations.js,我可以看到mixin文件被引用为ember.validations.mixin

所以当我把它传给我的控制器时

App.MemberaddController = App.FamilyController.extend(Ember.Validations.Mixin,{
我看到:

Error while processing route: memberadd Cannot read property 'invoke' of undefined TypeError: Cannot read property 'invoke' of undefined
在_validate函数的ember-validations.js文件中


我做错了什么?

首先,这是一个新项目,您可以选择使用ember cli。我建议您这样做,社区正在朝着这个方向前进

我想你的虫子在这里

validations: {
    firstname: {
        presence: true, <-- uneeded
        presence <-- remove this space: {message: 'mag niet leeg zijn'}
    }
},

不幸的是没有。。。即使注释掉整个validations对象,我仍然收到相同的错误:处理路由时出错:memberadd无法读取未定义类型的属性“invoke”错误:无法读取未定义类型的属性“invoke”。因此,很遗憾,我无法切换到此项目的CLI:我查看了源代码,它看起来像是验证程序为null时导致的null。我不是100%确定,但没有任何验证器似乎会导致这种问题。如果你只是存在:真的,它有效吗?
validations: {
    firstname: {
        presence: true, <-- uneeded
        presence <-- remove this space: {message: 'mag niet leeg zijn'}
    }
},
validations: {
    firstname: {
        presence: {message: 'mag niet leeg zijn'}
    }
},