#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
декораторе.