Ошибка при создании динамически директивы, которая содержала содержимое - PullRequest
0 голосов
/ 10 февраля 2019

В моем приложении есть точка, в которой я динамически создаю директиву с включенным содержимым, которое я хочу прикрепить в контейнер (div).Я использовал этот подход для нескольких компонентов, которые я сделал, и он работает хорошо.Но теперь у меня есть проблема, потому что эта директива зашла в содержание.Я получаю сообщение об ошибке:

angular.js: 14199 Ошибка: [$ compile: ctreq] Контроллер 'compA', требуемый директивой 'compB', не найден!

Буду признателен за любую помощь

Это код, который создает и добавляет компонент в контейнер

var newScope = $rootScope.$new(true);
newScope.elementConfig = elementConfiguration;
newScope.componentApi = {};
containerElement.append($compile(elementToHost)(newScope));

, и это компонент, который я хочу добавить вконтейнер

<field
    type="{{type}}"
    model=""
    mdt="{{mdt_type}}"
    label="{{label}}"
    placeholder="{{placeholder}}"
    maxlength="{{maxlength}}"
    req="isMandatory"
    editable="editable"
    is-disabled="disabled">

<micro-help micro-help="{{'text.label' | translate }}"
                as-tooltip="true"
                position="right"
                micro-help-icon="fa-globe">
    <div>
        <micro-help-localization>
        </micro-help-localization>
    </div>
</micro-help>

</field>

1 Ответ

0 голосов
/ 10 февраля 2019

Эта ошибка возникает, когда HTML-компилятор пытается обработать директиву, которая указывает опцию require в определении директивы, но требуемый контроллер директивы отсутствует в текущем элементе DOM (или его элементе-предке, если ^ былуказано).

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

Для получения дополнительной информации см. Ссылка на ошибку AngularJS - $ compile: ctreq Отсутствует обязательный контроллер

...