在Angular中,如果出现“观察者未定义”错误,通常是因为你在订阅观察者之前未定义观察者。以下是解决方法的示例代码:
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
observable$: Observable;
ngOnInit() {
this.observable$ = new Observable(observer => {
// 在这里定义观察者的行为
observer.next('Hello');
observer.complete();
});
this.observable$.subscribe(
value => console.log(value),
error => console.error(error),
() => console.log('Observable completed')
);
}
}
{{ observable$ | async }}
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
observable$: Observable;
ngOnInit() {
this.observable$ = new Observable(observer => {
observer.next('Hello');
observer.complete();
});
}
}
在此示例中,我们使用了async管道来处理observable$并将其直接显示在HTML模板中,而无需在组件中手动订阅观察者。
请注意,以上代码仅为示例,你需要根据你的应用程序逻辑进行相应的更改。
上一篇:Angular 7共享服务未共享
下一篇:Angular 7滚动事件不触发