0

这个问题在问题 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);
          }
        };
  });

此代码不显示垃圾邮件

谢谢

4

0 回答 0