在Angular应用中使用Routing和Observable时,有可能会遇到编译器错误ngtsc(2339)。这是因为编译器无法识别Observable类型的绑定。为了解决这个问题,可以使用类型断言或手动创建Observable对象的方式来进行绑定。
示例代码:
import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs';
@Component({
selector: 'app-my-component',
template: '{{ myData$ | async }}'
})
export class MyComponent {
myData$: Observable
constructor(private route: ActivatedRoute) {
this.myData$ = this.route.params as Observable
或者
import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { Observable, of } from 'rxjs';
@Component({
selector: 'app-my-component',
template: '{{ myData$ | async }}'
})
export class MyComponent {
myData$: Observable
constructor(private route: ActivatedRoute) { this.myData$ = of(this.route.snapshot.params.paramName); // 手动创建Observable对象 } }