我想向这个组件添加一个加载微调器,并且我正在尝试将代码拆分为一个服务,因此我可以添加一个.subscribe
方法并在加载完成时停止微调器,就像在这个工作示例中一样:
工作示例组件
ngOnInit(){
this._userService.getUsers()
.subscribe(users => {
this.users = users;
this.loadingUsers = false;
工作示例服务
getUsers(){
return this._http.get(this._url)
.map(response => response.json());
}
这是我要拆分的组件:
import { AngularFire, FirebaseObjectObservable , FirebaseListObservable } from 'angularfire2';
import {UserService} from './user.service';
import {SpinnerComponent} from './spinner.component'
export class UsersComponent implements OnInit{
items: FirebaseListObservable<any>;
constructor(af: AngularFire) {
this.items = af.database.list('/hr/users');
//this.loadingLista = false;
}
更新#1 给出答案
试一试答案,以更好地理解问题。
所以我创建了 UserService,它将使用 angularfire2 显示用户,现在我认为女巫开始成为主要问题,我的意思是items: FirebaseListObservable<any>;
用户服务
import { AngularFire } from 'angularfire2';
import {Injectable} from '@angular/core';
@Injectable()
export class UserService{
constructor(private _af: AngularFire){}
getUsers(){
return this._af.database.list('hr/users');
}
}
在 UsersComponent 我设法得到这样的用户列表:
items: FirebaseListObservable<any>;
ngOnInit(){
this.items = this._userService.getUsers();
}
但现在我需要一种在加载完成后停止微调器的方法,我知道的唯一方法是
.subscribe()
:
items: FirebaseListObservable<any>;
loadingLista = true;
constructor(private _userService: UserService) {
}
ngOnInit(){
this._userService.getUsers();
.subscribe(
x => this.items = x,
this.loadingLista = false
)
}
,但这不起作用,因为items
.
除了 有没有其他方法可以做到这一点.subscribe()
?或者我可以将类型items
转换为其他类型吗?