在Angular中,如果服务的可观察对象不触发,则可能是由于以下原因之一:
subscribe()方法来订阅可观察对象,并在回调函数中处理接收到的数据。import { Component, OnInit } from '@angular/core';
import { YourService } from 'your-service';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css']
})
export class YourComponent implements OnInit {
constructor(private yourService: YourService) { }
ngOnInit() {
this.yourService.getObservable().subscribe(data => {
// 处理接收到的数据
});
}
}
BehaviorSubject或Subject来发出值。例如:import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class YourService {
private yourObservable = new BehaviorSubject(null);
constructor() { }
getObservable() {
return this.yourObservable.asObservable();
}
emitData(data) {
this.yourObservable.next(data);
}
}
在上面的例子中,yourObservable是一个BehaviorSubject,它可以发出最新的值给已订阅的观察者。
providers数组中添加服务。import { Component } from '@angular/core';
import { YourService } from 'your-service';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css'],
providers: [YourService]
})
export class YourComponent {
constructor(private yourService: YourService) { }
}
请根据具体情况检查这些解决方法,并根据需要进行调整。