why520crazy / angular-w5c-validator

a simple plugin for angular.js form validation
http://why520crazy.github.io/angular-w5c-validator
468 stars 162 forks source link

w5c-dynamic-element 配合w5c-dynamic-name 的使用 #78

Closed lude008 closed 7 years ago

lude008 commented 7 years ago

在项目中需要动态的添加一个列表对象

直接给name赋值时也会报错,这是w5cDynamicElement的directive执行到link时$index还没有解析导致的。

<div ng-repeat="x in list">
<input type="text" w5c-dynamic-element class="form-control"  ng-model="x.detail" name="detail${{$index}}$"  required>
</div>

使用w5c-dynamic-name时也是验证不了

<div ng-repeat="x in list">
<input type="text" w5c-dynamic-element class="form-control"  ng-model="x.detail" w5c-dynamic-name="detail${{$index}}$"  required>
</div>

这是w5cDynamicName的directive执行到link时scope.$eval(attrs.w5cDynamicName)返回undefined。所以修改了directive文件中的w5cDynamicName

ngModelCtr.$name = attrs.w5cDynamicName;
  elm.attr('name', attrs.w5cDynamicName);

至此,验证ok

why520crazy commented 7 years ago

之前只支持 scope 变量传递,现在修改了源码支持表达式 升级到 2.4.25 试试