ok извините за смешение и задержку. Я создал ответ, который вы искали. , потому что вы вводите директиву, вам действительно нужно отправить параметры этой директивы со значениями, которые вам нужны ... это рабочий пример ... это означает, что вам нужно будет обрабатывать все проверки и так далее, поскольку вы не генерируя элемент через FormalyJS, но в собственной директиве (убедитесь, что нет никакого другого способа сделать это ...)
это исправленный код с требуемым/MAXLENGTH/MINLENGTH:.
jsbin
Что я на самом деле делал, это передать опции для моей директивы Formly и добавить к ней валидности
app.directive('exampleDirective', function() {
return {
templateUrl: 'example-directive.html',
scope:{
options:'=options',
ngModel:'=ngModel'
},
link:function(scope, element, attrs){
scope.isRequired = scope.options.templateOptions.required;
scope.minValue = scope.options.templateOptions.min;
scope.maxValue = scope.options.templateOptions.max;
}
};
});
<script type="text/ng-template" id="example-directive.html">
<div class="form-group">
<label for="{{::id}}">{{options.templateOptions.label}}</label>
<input id="{{::id}}" name="{{::id}}" class="form-control" ng-model="ngModel" ng-required="isRequired" ng-minLength="{{minValue}} ng-maxLength={{maxValue}}"/>
</div>
</script>
это добавление в шаблон в шаблоне vm.formFields : «»
так что теперь, когда вы хотите, чтобы добавить поле вам необходимо будет передать данные директивы и в директива добавить соответствующий код ... Я не очень знаком с мерно, но это решение, которое я могу дать вам
ПРИМЕЧАНИЕ: я передать пункт меню в директиве, потому что это как FormalyJS строит его. ... вы всегда можете использовать свой собственный ... но так как он директива мерно, полагал, что это было бы легче
EDIT
здесь обновленный JSBIN
вы можете увидеть, что я должен был добавить к директиве ngModel ... вы также можете сделать это требуется, а затем использовать его, я предпочитаю делать это вот так ... но вы должны передать его в div, определяющий директиву ... проверить обновленный код
, когда вы установите требуемое поле, в котором не указано, или нет, этот предмет необходим ... вам нужно указать его, когда требуется ... например require: '^ ngModel' или require: '^ form', это позволит вам использовать его в функции ссылок в директиве ... https://docs.angularjs.org/guide/directive, вам нужно для установки поля по мере необходимости ... ps ваш пример немного грязный ... где формальная форма? –
Я посмотрю ваш материал ссылки. Спасибо чувак. Директива formly-form - это скрипт formly.js, который включен в поле html. – Holt
@ Jony-Y Это требует: '^ ngModel'' войти в самую директиву? Должно ли то, что ему требуется, быть контроллером на главной странице? или форму на главной странице ('vm.formName' в этом случае)? Установляет ли 'link', как эти два элемента взаимодействуют друг с другом? – Holt