我在ng-repeat
指令中使用ng-show
值时遇到问题。
我已经尝试了许多解决方案,"myForm.".{{value}}.".$error.required"
并且没有{{}}
,甚至没有{{}}
指令中ng-show
的示例。
看来,放入ng-show
的价值正在变得混乱。我希望能够使用字段中的变量(由ng-repeat
生成)在命名输入和创建输入控制条件时创建多个字段。
<form name="myForm">
<div ng-repeat="fields in logEntry.StringValues">
{{fields.Title}} <input type="text" name="{{fields.PropertyInfoName}}" ng-model="user" required>
<span class="error" ng-show="myForm.fields.PropertyInfoName.$error.required">
Required!
</span><br>
</div>
编辑:以下代码有效,但没有我需要的ng-repeat。
<form name="myForm">
SomeText Here: <input type="text" name="testName" ng-model="user" required>
<span class="error" ng-show="myForm.testName.$error.required">
Required!
</span><br>
</form>
答案 0 :(得分:0)
尝试在指令中删除双括号{{}}。如果您需要更具体的帮助,请发布相应的javascript代码。
<form name="myForm">
<div ng-repeat="fields in logEntry.StringValues">
{{fields.Title}} <input type="text" name="fields.PropertyInfoName" ng-model="user" required>
<span class="error" ng-show="myForm.fields.PropertyInfoName.$error.required">
Required!
</span><br>
</div>
</form>
答案 1 :(得分:0)
解决方案是"since you cannot dynamically generate the name attribute of input elements using interpolation, you have to wrap each set of repeated inputs in an ngForm directive and nest these in an outer form element."下面链接的解决方案允许通过为每个嵌套表单提供自己的范围来实现这一点。
答案 2 :(得分:0)
记住它只是javascript
"myForm.".{{value}}.".$error.required"
只是
myForm[value].$error.required
但是,您需要创建指令来执行您想要执行的操作。作为一个非常类似的角度实现的例子你可以看看https://github.com/gaslight/angular-schema-form 这是demo:http://gaslight.github.io/angular-schema-form/