Я создаю динамику из ng-repeat из json.
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 crough loop через директиву. Я загружаю этот маленький HTML, используя $ compile и linker. Все работает хорошо даже валидацией. Я могу включить/отключить кнопку отправки на основе проверки формы, кроме 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, если я использую директиву. Пожалуйста помоги.
Вероятно, поздний ответ, но вы можете сделать
var element1 = angular.element(your_html_fragment);... logic to append element1 in somewhere
после этого
$compile(element1)(scope)
в вашей директиве, это должно это сделать.
angular.element
последовательность angular.element
и $compile
.