SoE*_*zPz 23 javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat
当动态创建"inputName"时,有人会如何使用formName.inputName.$有效?
<form name="formName">
<input ng-repeat="(variable) in variables"
type="text" name="variable.name"
ng-model="variable.name" required />
</form>
Run Code Online (Sandbox Code Playgroud)
HTML输入属性"name"的输出将是字符串"variablename",它将应用于所有重复输入.
如果我们试过这个
<form name="formName">
<input ng-repeat="(variable) in variables"
type="text" name="{{ variable.name }}"
ng-model="variable.name" required />
</form>
Run Code Online (Sandbox Code Playgroud)
HTML输入属性"name"的输出将是字符串"{{variable.name}}",它将应用于所有重复输入.
在这两个条件中的任何一个中,都不会动态创建每个重复输入元素的name属性; 所有输入将共享相同的输入名称.如果您想根据特定名称调用特定输入,那就太好了.
Lor*_*ren 23
看起来Angular 1.3修复了这个问题(/sf/answers/2303502351/)
现在,Angular 1.3+可以实现这一点:
<form name="vm.myForm" novalidate>
<div ng-repeat="p in vm.persons">
<input type="text" name="person_{{$index}}" ng-model="p" required>
<span ng-show="vm.myForm['person_' + $index].$invalid">Enter a name</span>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
在某些情况下,如果您只是传递信息,内部表格是一个很好的解决方案:(https://stackoverflow.com/posts/12044600/)要解决"动态名称"问题,您需要创建一个内部表单(请参阅ng -form):
<div ng-repeat="social in formData.socials">
<ng-form name="urlForm">
<input type="url" name="socialUrl" ng-model="social.url">
<span class="alert error" ng-show="urlForm.socialUrl.$error.url">URL error</span>
<button ng-click="doSomething(urlForm.socialUrl.$valid)">Test</button>
</ng-form>
</div>
Run Code Online (Sandbox Code Playgroud)
另一种选择是为此编写自定义指令.
这是jsFiddle显示ngForm的用法:http://jsfiddle.net/pkozlowski_opensource/XK2ZT/2/
| 归档时间: |
|
| 查看次数: |
40453 次 |
| 最近记录: |