Angular 6: Strange "Свойство xxx защищено и доступно только внутри класса и его подклассов - PullRequest
0 голосов
/ 21 мая 2018

У меня есть проект библиотеки, который я перевожу на Angular 6 и Angular CLI 6.

Есть абстрактный класс NativeFormElementChild, который имеет некоторые частные свойства: _id, _required, _ariaDescribedBy и _ariaRequired.

Затем у меня есть директива InputDirective, которая применяется к <input> в качестве атрибута (добавляет некоторые дополнительные функции).InputDirective простирается от NativeFormElementChild.

Теперь, когда я пытаюсь построить это в Angular 6, я получаю изобилие ошибок.Везде, где я использую свой InputDirective, я получаю четыре ошибки:

  • Свойство '_id' защищено и доступно только в пределах класса 'NativeFormElementChild' и его подклассов.
  • Свойство '_required'защищен и доступен только внутри класса 'NativeFormElementChild' и его подклассов.
  • Свойство '_ariaDescribedBy' защищено и доступно только внутри класса 'NativeFormElementChild' и его подклассов.
  • Свойство '_ariaRequired' защищенои доступно только внутри класса 'NativeFormElementChild' и его подклассов.

Я не пытаюсь получить доступ к этим свойствам откуда угодно, кроме как внутри NativeFormElementChild.Поэтому я понятия не имею, откуда эти ошибки.Используя Angular 5, я не получаю ни одной из этих ошибок.

1 Ответ

0 голосов
/ 18 октября 2018

Внутри html вашего компонента поместите *ngIf="true" во внешний тег html.Это, кажется, активирует понимание защищенных свойств Angular 6.Любой тег *ng (привязка шаблона) будет работать.Он понадобится для каждого компонента html.

<div *ngIf="true">
...Everything in here will now properly have access to protected properties
</div>

или, если у вас нет внешнего элемента, вы можете использовать ng-container ...

<ng-container *ngIf="true">
...
</ng-container>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...