1

У меня есть следующий plunkr:Как добавить атрибуты дочернего элемента в директиве

http://plnkr.co/edit/M1uwZxZP7sXp5sPw7pxf?p=preview

То, что я хочу сделать, это: Я хотел бы построить угловой код для создания входов автоматически внутри форм , учитывая JSON с ним Описание Пример:

{'name': 'username', 'description': ['text', 'maxlength=16', 'required']} 

для этого я использую пользовательскую директиву, которая присоединяет ввод в тег

<custominput></custominput> 

Повороты

<custominput> 
    <input type='text'/> 
</custominput> 

, а затем я добавить атрибуты любой другой проверки, как MINLENGTH и MAXLENGTH.

В моей plunkr, я могу добавить атрибуты к custominput тега, как это:

<custominput compiled="compiled" disabled="disabled"></custominput> 

Но как я могу добавить эти атрибуты ввода тега (это означает, что, ребенок custominput) ??

UPDATE 1

Этот вопрос можно резюмировать в:

Как я могу добавить в HTML-элемент/атрибутов с угловыми директивами директивы

Пример: Включите эту

<form name="form0"> 
    <input custom-directive> 
</form> 

:

<form name="form0"> 
    <input custom-directive type="text" ng-model="ctrl.username" ng-maxlength="15" ng-required="required"> 
</form> 

из директивы

ответ

1

Вы бы добавить их в шаблон секции директивы. Смотрите ниже код:

HTML код

<form> 
    <input custom-directive> 
</form> 

директивы кода (им просто пишу это с верхней части моей головы, это, вероятно, не будет копировать вставить работу для того, чтобы работать, но это определенно будет в правильном направлении).

app.directive('customDirective', function() { 
    return { 
    restrict: 'A', 
    controller: function($scope, attrService) { 
     $scope.attributes = attrService.getAttrs; 
    }, 
    link: function(scope, element, attrs) { 
     element.attr('name', scope.attributes.name); 
     // add more attributes 
     console.log(scope.attributes) // ensure attributes is being pushed through from directive controller. 
    } 
    } 
}); 

Чтобы динамически добавлять атрибуты

+0

Я сожалею. Я, должно быть, выразил себя не так. То, как вы предложили, у меня уже есть строка шаблона, но мне нужно создать его в Link. – Aleksandrus

+1

Я обновил код директивы, чтобы подтолкнуть вас в правильном направлении. Написание кода с небольшим количеством проб и ошибок поможет вам научиться этому в будущем :) –

Смежные вопросы