在同一表单中多次使用相同的指令

时间:2015-06-24 15:15:49

标签: angularjs forms angularjs-directive

我在完成对我来说似乎微不足道的任务时遇到了麻烦,但我还没有把它弄好。我有一个表格,在那个表格中我使用了一个叫做时间范围的家庭烹饪指令。该指令有两个输入字段,分别用于开始日期和结束日期。稍后,在定义表单的视图中,我想使用与此类似的代码验证每个字段:

<li ng-show="form.createAssignment.fromDateField.$error.dateinput">{{::$parent.lang.from_date | capitalize}} {{::$parent.lang.has_to_be_on_format}} {{::$parent.lang.yyyy_mm_dd}}</li>

嗯,这很好用,但仅用于验证表单中最后一个指令中的输入字段。如果我在第一个指令中输入错误,表单无效(因此显示错误列表)但是指出错误的文本没有显示,大概是因为最后一个指令中的输入是正确的。

所以,不知何故,我希望能够确定我所指的是哪个指令,可能是这样的:

<li ng-show="form.createAssignment.directive1.fromDateField.$error.dateinput">{{::$parent.lang.from_date | capitalize}} {{::$parent.lang.has_to_be_on_format}} {{::$parent.lang.yyyy_mm_dd}}</li> 

然而,我还没有成功。有没有人建议如何做到这一点?

1 个答案:

答案 0 :(得分:0)

ng-form使用输入名称进行验证,因此如果使用ng-repeat或重复指令,则难以定位特定输入。

一个选项是使用ng-form指令,这意味着在表单内创建一个内部表单。有很多关于如何做到这一点的指南。

另一种选择是通过指令参数传递唯一名称(前缀/后缀)。但不幸的是,变量名称不会自动生效,您必须在传入名称后再次编译模板。