我正在通过json的ng-repeat创建动态。
my form.html
<form name="userForm" >
<div ng-repeat="(key,box) in form.form_fields" >
<accordion >
<accordion-group heading="{{key}}" is-open="true">
<div ng-repeat="field in box">
<field-directive field="field">
</field-directive>
</div>
</accordion-group>
</accordion>
</div>
</form>
所以基本上我正在通过指令加载每种类型的字段(文本框/收音机/下拉/电子邮件等)html trough loop。 我使用$ compile和linker加载这些小HTML。即使验证,一切都很好。我可以根据表格验证启用/禁用提交按钮,但 ng-message 除外。如果我不使用像这样的指令
<form name="userForm" >
<div ng-repeat="(key,box) in form.form_fields" >
<accordion >
<accordion-group heading="{{key}}" is-open="true">
<div ng-repeat="field in box">
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="field.field_type ==='textfield' ">
<md-input-container >
<label>{{field.field_title}}</label>
<input ng-model="field.field_value" name="{{field.field_id}}" type="text"
ng-required="true" md-maxlength="9" >
<div ng-messages="userForm.{{field.field_id}}.$error">
<p ng-message="maxlength">Your name is too long.</p>
<p ng-message="required">Your name is required.</p>
</div>
</md-input-container>
</div>
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="field.field_type ==='number' ">
<md-input-container >
<label>{{field.field_title}}</label>
<input ng-model="field.field_value" name="{{field.field_id}}" type="text"
ng-required="true" md-maxlength="9" >
<div ng-messages="userForm.{{field.field_id}}.$error">
<p ng-message="maxlength">Your name is too long.</p>
<p ng-message="required">Your name is required.</p>
</div>
</md-input-container>
</div>
</div>
</accordion-group>
</accordion>
</div>
</form>
一切都很好,包括ng-message。我也可以看到错误消息。 如果我使用指令,ng-message有什么问题。请帮忙。
答案 0 :(得分:0)
可能迟到但你可以做到
var element1 = angular.element(your_html_fragment);
... logic to append element1 in somewhere
之后
你的指令中的 $compile(element1)(scope)
应该这样做。
angular.element
和$compile
的序列非常重要。