#angular
#angular
Вопрос:
я хочу изменить статус включения / выключения для кнопки, которая является частью моего пользовательского шаблона компонента. это должно быть сделано с помощью @Input, и пользователь должен иметь возможность это делать:
<custom-component>
[disabled]="true"
[x]="false"
[y]="false"
</custom-component>
Я поставил
@Input('disabled') public _disabled: boolean;
в моем пользовательском компоненте
, а также я включил
[disabled]=_disabled
свою кнопку, которая находится в моем шаблоне пользовательского компонента.
проблема в том, что описанный выше метод не работает, и изменение атрибута [disabled] не позволяет включить / отключить кнопку.
https://stackblitz.com/edit/angular-ndyl14?embed=1amp;file=src/index.html
Комментарии:
1. В чем проблема?
2. Я не могу найти кнопку в вашем пользовательском компоненте
3. Что вы подразумеваете под «не работает»? Можете ли вы быть более конкретными
4. Просто не делайте этого в корневом компоненте, и он будет работать нормально. stackblitz.com/edit /…
5. пожалуйста, ознакомьтесь с документацией angular. angular.io/guide/component-interaction
Ответ №1:
Я думаю, что приведенный ниже код также может быть полезен, но он все еще не работает
constructor(public elementRef: ElementRef) {
var native = this.elementRef.nativeElement;
var myattr = native.getAttribute("myattr");
}
Ответ №2:
Что вы могли бы сделать, так это передать компоненту статус [disabled]
как Input()
и проверить это свойство в кнопке для изменения. Если вы хотите изменить отключение кнопки, вам нужно использовать только [disable]
свойство, а не [attr.disable]
Вы можете увидеть пример здесь:
https://stackblitz.com/edit/angular-stack-55673048?file=src/app/hello.component.ts