请注意,这个问题与常规 Angular 组件无关。我特别询问使用 Angular 创建的可重用自定义元素,也称为 Angular Web 组件。
我有一个可重用的 Angular 10 Web 组件托管在另一个 Angular 10 Web 应用程序中。使用破折号分隔的小写属性名称(即 my-data),我可以将字符串输入到具有小驼峰式大小写 @Input 的 Angular Web 组件(即 myData)。
HOST APP 的标记中包含以下内容:
<my-custom-element my-data="test"></my-custom-element>
可重复使用的 WEB 组件 - 我的自定义元素:
@Input() myData: string;
该字符串可以正常工作,并且确实会传递到 Web 组件中。现在,如何将 observable 传递给 Web 组件?示例(这不起作用,因为它将“”中的内容作为文字字符串。)
主机应用标记:
<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();
}
可重复使用的 WEB 组件 - 我的自定义元素:
@Input() myData: string;
@Input() fetchEvent: Observable<void>;
我还尝试了以下也不起作用: [fetch-event]="eventsSubject.asObservable()"
如果使用 @Input 将 observable 传递给 Angular Web 组件不是这样做的方法,请告诉我。我也尝试过this.elRef.nativeElement.attributes['fetchEvent'].value,这对我也不起作用。