这个问题在问题 1 问题 2之前至少被问过两次,但我认为答案不完整很多人使用带有 ng-repeat 的静态名称,这是一个可能的解决方案,但在我的情况下不起作用,因为我需要输入的名称在控制器中将参数传递给另一个指令,一个更好的主意是使用该指令dinamicName
,但是我不知道如何显示错误
以下是我的代码示例
<form name="myForm" class="form-horizontal" role="form" ng-submit="submitForm()">
<div ng-repeat="field in data.fields">
<ng-form name="form">
<!-- Texto plano -->
<div class="col-sm-6">
<input type="{{ field.type }}" data-ng-model="field.data" class="form-control" required dynamic-name="field.name"/>
<span ng-show="form."+{{field.name}}+".$touched && form."+{{field.name}}+".$error.required" class="help-block with-errors" >Required!</span>
</div>
</div>
</ng-form>
</div>
</form>
指令动态名称:
angular.module('formModule')
.directive('dynamicName',
function dynamicNameDirective ($compile, $parse) {
return {
restrict: 'A',
terminal: true,
priority: 100000,
link: function(scope, elem) {
var name = $parse(elem.attr('dynamic-name'))(scope);
// $interpolate() will support things like 'skill'+skill.id where parse will not
elem.removeAttr('dynamic-name');
elem.attr('name', name);
$compile(elem)(scope);
}
};
});
此代码不显示垃圾邮件
谢谢