我正在尝试使用表单验证来使用Angular Wizard

时间:2014-10-02 01:34:10

标签: javascript angularjs forms validation

我正在使用角度向导进行应用的注册过程。

角度精灵 - https://github.com/mgonto/angular-wizard

但是,无论我尝试什么,向导的每一步都不允许进行表单验证(基本上是带有角度的框和带有FormController和$ error对象的表单的使用。

我已经发布了有关表单验证的项目问题页面,但我没有收到项目所有者或任何其他用户的工作代码示例,所以我希望更多这里的高级用户可以提供帮助。

哦,为了帮助隔离问题,我只在我的jsfiddles的第一步中包含了html。

验证问题 - https://github.com/mgonto/angular-wizard/issues/41

验证问题页面链接到我的jsfiddles和其他工作。

这是一个范围问题????如果是这样,我该如何解决它?目前,当我单击Next按钮时,它只是通过向导进行,当我尝试将$ error对象发送到控制台时,我得到的只是" undefined"。

Angular docs(表单属性和对$ error的引用) - https://docs.angularjs.org/api/ng/type/form.FormController

2 个答案:

答案 0 :(得分:1)

这绝对是一个范围问题。我能够通过进入子元素的范围(在控制器中)并通过将视图(html)中的变量定义为$ parent元素的一部分来使事情变得有效。这意味着所有变量都在HTML中设置为

ng-model="$parent.variableName";

从控制器更改此变量的值需要进行如下调用:

$scope.$$childTail.variableName = 'something that you want to change the value to';

但是进入$$ childTail是一个禁忌。如果你问我,整个项目需要重新修改以解决范围问题。如果修改后的项目使用了典型角度数据绑定之外的任何内容,则需要有关于如何访问验证变量的文档。

我的解决方案代码附在下面的要点中。

控制器设置 https://gist.github.com/Shawful/a4f8ff5097eabc5306f4

HTML设置 https://gist.github.com/Shawful/f8dc97d6fd88bbb111f9

答案 1 :(得分:0)

我认为你的部分问题是你的ng模型上没有点缀符号。一般来说,你想要ng-model =" container.piece"。如果您的模型中没有包含点,那么有很多关于写入子范围的问题的文章。看看Understanding scopes