[英]Angularjs - Dynamic Name for input
My problem should be quite simple.我的问题应该很简单。 I have an input inside a ng-repeat where the name is inserted dynamically and then I want to validate the input from the form using:我在 ng-repeat 中有一个输入,其中名称是动态插入的,然后我想使用以下方法验证表单中的输入:
{{myForm.{{entry.dynamicField}}.$invalid}} //ERROR Token '{' is not a valid identifier
<form name="myForm"> <tr ng-repeat="entry in array"> <td> <input name="{{entry.dynamicName}}" /> <span ng-show="myForm.{{entry.dynamicName}}.$invalid">Invalid</span> </td> </tr> </form>
Any help?有什么帮助吗?
You will have to use ng-model
in order to bind your dynamic data into the input
element.您必须使用ng-model
才能将动态数据绑定到input
元素中。 And, get rid of angular expression in ng-show
.并且,去掉ng-show
的角度表达式。
This should be changed这个应该改
ng-show="myForm.{{entry.dynamicName}}.$invalid"
to到
ng-show="myForm.entry.dynamicName.$invalid"
Snippet片段
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.array = [{ dynamicName: "John Doe" }, { dynamicName: "John Doe2" }]; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <div ng-app="myApp" ng-controller="myCtrl"> <form name="myForm"> <table> <tr ng-repeat="entry in array"> <td> <input name="entry.dynamicName" ng-model="entry.dynamicName" /> <span ng-show="myForm.entry.dynamicName.$invalid">Invalid</span> </td> </tr> </table> </form> </div>
Pretty same as in JS:与 JS 中的非常相似:
{{myForm[entry.dynamicField].$invalid}}
And just remember - you always use {{}} only once for expression.请记住 - 您总是只使用 {{}} 一次来表达。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.