@Вход и локальная переменная NGB Modal

#angular #ng-bootstrap

Вопрос:

Мы используем NGB Modal и на основе образца, найденного здесь: https://ng-bootstrap.github.io/#/components/modal/examples, на имя ссылаются modalRef.componentInstance.name через декоратор @Input (т. Е. @Input() name ) в модальном. Я попытался удалить декоратор @Input, и он все еще работает.

Смотрите здесь: https://stackblitz.com/edit/angular-szwhfq?file=src/app/modal-component.ts

Может ли кто-нибудь объяснить, почему это так?

Спасибо.

Комментарии:

1. Не могли бы вы предоставить ссылку на модальную документацию, в которой указывается необходимость в декораторе @Input? Я бы создал проблему, чтобы изменить эти документы. Или вы можете сделать это сами: github.com/ng-bootstrap/ng-bootstrap/issues

2. Я имел в виду образец кода, извините за это. Пожалуйста, смотрите Компоненты в качестве образца содержимого в ng-bootstrap.github.io/#/components/modal/examples . Я отредактировал свой вопрос, чтобы отразить и это.

Ответ №1:

@Input декоратор позволяет нам передавать свойства через HTML-шаблон. код <my-component myProp='123'></my-component> не будет передавать значение myProp if myProp , объявленное без @Input декоратора.

Модальный не работает с шаблоном. Он использует экземпляр компонента (который показан в модальном режиме) так же, как мы используем сервисы или DTO. Нет передачи данных в шаблоне — нет необходимости в @Input декораторе.