Javascript ngRepeat中的AngularJS动态编译指令

Javascript ngRepeat中的AngularJS动态编译指令,javascript,angularjs,angularjs-directive,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Ng Repeat,我采用了来自的plunker,并为输入字段验证创建了一个指令。该指令在静态字段中运行良好,但如果在ngRepeat语句中找到,则不起作用。 指令所做的是在它在输入中找到自己之后,在输入元素之后附加一个动态编译的模板($http.get from html file,该文件本身包含另一个ngRepeat)。该模板包含典型的angularJS验证代码,但由ngRepeat和错误键MessageDictionary生成。不幸的是,当ngrepeat重新运行时(例如添加更多输入字段),模板似乎没有重新编

我采用了来自的plunker,并为输入字段验证创建了一个指令。该指令在静态字段中运行良好,但如果在ngRepeat语句中找到,则不起作用。 指令所做的是在它在输入中找到自己之后,在输入元素之后附加一个动态编译的模板($http.get from html file,该文件本身包含另一个ngRepeat)。该模板包含典型的angularJS验证代码,但由ngRepeat和错误键MessageDictionary生成。不幸的是,当ngrepeat重新运行时(例如添加更多输入字段),模板似乎没有重新编译(更具体地说,$field项未定义)

代码相当大,因此我将其包含在

现在,这是从静态字段生成的dom:

    <input name="full_name" type="text" ng-model="vm.user.fullName" required="" ng-pattern="vm.fullNamePattern" ng-minlength="5" ng-maxlength="30" 
data-cv-input-val data-required-error="Your first and last name is required." data-min-length-error="Minimum of two characters per name." 
data-max-length-error="The name is too long." data-pattern-error="Please use this format: Xx[space]Xx.">
<div class="form-fields__error-container ng-scope" ng-class="{'opacity--half': opacityHalf}" ng-show="($field.$dirty || $form.attempt) &amp;&amp; $field.$invalid" style="">
    <!-- ngRepeat: (key, error) in $field.$error -->
    <span ng-repeat="(key, error) in $field.$error" ng-show="error &amp;&amp; tooltipVisible" class="error-tooltip ng-scope ng-binding ng-hide">The name is too long.</span>
    <!-- end ngRepeat: (key, error) in $field.$error -->
    <span ng-repeat="(key, error) in $field.$error" ng-show="error &amp;&amp; tooltipVisible" class="error-tooltip ng-scope ng-binding ng-hide">Minimum of two characters per name.</span>
    <!-- end ngRepeat: (key, error) in $field.$error -->
    <span ng-repeat="(key, error) in $field.$error" ng-show="error &amp;&amp; tooltipVisible" class="error-tooltip ng-scope ng-binding ng-hide">Please use this format: Xx[space]Xx.</span>
    <!-- end ngRepeat: (key, error) in $field.$error -->
    <span ng-repeat="(key, error) in $field.$error" ng-show="error &amp;&amp; tooltipVisible" class="error-tooltip ng-scope ng-binding ng-hide">Your first and last name is required.</span>
    <!-- end ngRepeat: (key, error) in $field.$error -->
</div>

名字太长了。
每个名称至少两个字符。
请使用以下格式:Xx[空格]Xx。
需要您的名字和姓氏。
这是一个由ng repeat生成的字段:

<span data-ng-repeat="email in vm.person.emails" ng-scope">
    <input type="email" ng-model="email.email" id="email-2" placeholder="Email" data-cv-input-val="">
    <div class="form-fields__error-container ng-scope ng-hide" ng-class="{'opacity--half': opacityHalf}" ng-show="($field.$dirty || $form.attempt) &amp;&amp; $field.$invalid" style="">
    <!-- ngRepeat: (key, error) in $field.$error -->
    </div><!-- end ngIf: $index > 0 -->
</span>

顺便说一句,我还尝试创建一个分配给ng repeat的指令,该指令在作用域上显示ng repeat done消息,尽管控制器可以使用作用域捕获它。$on,但上面的指令(在链接函数内)无法执行。