当 Observable 被订阅时,变化没有反映在 html 中
Changes not reflecting in html when the Observable is subscribed
我正在尝试使用共享服务将对象传递给对象模型到已加载的组件,即使我在订阅后获得数据,它也没有反映在 html 视图中。
<div *ngFor="let emp of emps" class="card">
<div class="card-body">
<img class="img-icon" [src]="emp?.logo" />
</div>
<div class="icon-text">
<p class="maintext" >{{emp?.name}}</p>
<p class="subtext">Emp Code: {{emp?.code}}</p>
</div>
<div class="icon-text">
<a class="view-btn" >View Details</a>
</div>
</div>
emps : EmployeeModel[];
ngOnInit(): void {
this.service.getData().subscribe(data => {
this.emps = data
console.log(this.emps))
})
}
export class EmployeeService {
employeeData:any;
private subject = new Subject<any>();
constructor() { }
setEmployeeData(data) {
this.employeeData = data
this.subject.next(data);
}
getData(): Observable<any> {
return this.subject.asObservable();
}
}
从 getData()
返回的 observable 没有发射任何东西。直到您使用数据调用 setEmployeeData()
。
使用 BehaviorSubject 而不是 Subject
private subject = new BehaviorSubject<any>(null);
我正在尝试使用共享服务将对象传递给对象模型到已加载的组件,即使我在订阅后获得数据,它也没有反映在 html 视图中。
<div *ngFor="let emp of emps" class="card">
<div class="card-body">
<img class="img-icon" [src]="emp?.logo" />
</div>
<div class="icon-text">
<p class="maintext" >{{emp?.name}}</p>
<p class="subtext">Emp Code: {{emp?.code}}</p>
</div>
<div class="icon-text">
<a class="view-btn" >View Details</a>
</div>
</div>
emps : EmployeeModel[];
ngOnInit(): void {
this.service.getData().subscribe(data => {
this.emps = data
console.log(this.emps))
})
}
export class EmployeeService {
employeeData:any;
private subject = new Subject<any>();
constructor() { }
setEmployeeData(data) {
this.employeeData = data
this.subject.next(data);
}
getData(): Observable<any> {
return this.subject.asObservable();
}
}
从 getData()
返回的 observable 没有发射任何东西。直到您使用数据调用 setEmployeeData()
。
使用 BehaviorSubject 而不是 Subject
private subject = new BehaviorSubject<any>(null);