Обратите внимание, что этот вопрос НЕ касается обычных компонентов Angular. Я специально спрашиваю о многоразовом настраиваемом элементе, созданном с помощью Angular, также называемом веб-компонентом Angular.
У меня есть многоразовый веб-компонент Angular 10, размещенный внутри другого веб-приложения Angular 10. Используя имена атрибутов в нижнем регистре, разделенные тире (например, my-data), я могу ввести строку в веб-компонент Angular, который имеет @Input с нижним регистром верблюда (например, myData).
HOST APP имеет следующую разметку:
<my-custom-element my-data="test"></my-custom-element>
Многоразовый веб-компонент - my-custom-element:
@Input() myData: string;
Строка работает нормально и передается в веб-компонент. Теперь, как передать наблюдаемое веб-компоненту? Пример (это не работает, поскольку он принимает то, что находится внутри, как буквальную строку.)
РАЗМЕТКА ПРИЛОЖЕНИЯ ПРИЛОЖЕНИЯ:
<my-custom-element
my-data="test"
fetch-event="eventsSubject.asObservable()"
></my-custom-element>
КОМПОНЕНТ ХОЗЯЙСТВЕННОГО ПРИЛОЖЕНИЯ:
eventsSubject: Subject<void> = new Subject<void>();
handleButtonClick(event: any): void {
this.eventsSubject.next();
}
Многоразовый веб-компонент - my-custom-element:
@Input() myData: string;
@Input() fetchEvent: Observable<void>;
Я также пробовал следующее, что тоже не работает: [fetch-event] = eventsSubject.asObservable ()
Если использование @Input для передачи наблюдаемых веб-компонентов Angular не подходит, дайте мне знать. Я также попробовал this.elRef.nativeElement.attributes['fetchEvent'].value
, который у меня тоже не сработал.