У меня есть директива элемента и директива атрибута:Как удалить директивы атрибута из директивы элемента в AngularJS?
<my-element my-attribute="value"></my-element>
мой-атрибут является директивой, которая требует ngModel:
app.directive('myAttribute', [
function() {
var definition = {
restrict: 'A',
require: 'ngModel',
link: function ($scope, $element, $attrs, ctrl) {...}
}
return definition;
моего-элемент может быть использован без нг-модели, но шаблон my-element содержит вход, который всегда имеет ng-модель. My-attribute должен быть удален из my-element и добавлен к вводу внутри my-element. В моей функции компиляции в моем-элементного директивы у меня есть:
var value = element.attr('my-attribute');
element.remove('my-attribute');
element.find('input').attr('my-attribute', value);
Это хорошо работает, когда директива атрибута не требуется: "ngModel. Но если мне требуется ngModel, я получаю:
Error: [$compile:ctreq] Controller 'ngModel', required by directive 'myAttribute', can't be found!
Почему? Как я могу это исправить?
ошибка вполне очевидна или может быть я не получил вопрос – harishr
My-attribute удален my-element из my-element и добавлен к вводу внутри my-element, который имеет ngModel – latata
, но даже до того, как угловая заменила вашу директиву html , он будет проверять, удовлетворяет ли требуемый атрибут или нет ... и в этот момент у вас нет ng-модели в атрибутах вашей директивы ... следовательно, ошибка – harishr