Angular NGRX/角度/火力基地
我正在尝试使用ngrx store/effects以及angular和firebase开发一个应用程序 我很难理解为什么从服务中提取数据不起作用,但直接从firebase中提取数据却起作用。在特效课上,我只改变了一行 我知道对Firebase的服务调用实际上是有效的,因为我直接在组件中调用它并在页面上显示数据 但是,当我尝试在NGRX效果中使用相同的服务时,调用该服务时它不起作用,我必须使用AngularFire2调用Firebase 代码如下: 不工作Angular NGRX/角度/火力基地,angular,firebase,angularfire,ngrx,ngrx-effects,Angular,Firebase,Angularfire,Ngrx,Ngrx Effects,我正在尝试使用ngrx store/effects以及angular和firebase开发一个应用程序 我很难理解为什么从服务中提取数据不起作用,但直接从firebase中提取数据却起作用。在特效课上,我只改变了一行 我知道对Firebase的服务调用实际上是有效的,因为我直接在组件中调用它并在页面上显示数据 但是,当我尝试在NGRX效果中使用相同的服务时,调用该服务时它不起作用,我必须使用AngularFire2调用Firebase 代码如下: 不工作 @Effect() pullArrayF
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.customerDataService.getAllCustomers()***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.af.database.list('/customers')***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
工作
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.customerDataService.getAllCustomers()***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.af.database.list('/customers')***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
服务
getAllCustomers(id: any = ''): FirebaseListObservable<CustomerModel[]> {
return this.af.database.list(this.customersRef, {
query: {
orderByChild: 'parentId',
equalTo: id
}
});
}
getAllCustomers(id:any=''):FirebaseListObservable{
返回此.af.database.list(this.customersRef{
查询:{
orderByChild:“父ID”,
equalTo:id
}
});
}
我刚刚解决了自己的问题。这两种编码效果的方法都是完全相同的
在我的服务中,我只有一个默认的id='',这使得服务不返回任何内容,当我从我的组件调用它时,我传递了一个id
真的很简单-就是看不见森林,看不见树木。我刚刚解决了自己的问题。这两种编码效果的方法都是完全相同的 在我的服务中,我只有一个默认的id='',这使得服务不返回任何内容,当我从我的组件调用它时,我传递了一个id
真的很简单-只是看不到树的森林。我不确定这是否有助于解决您的问题,但您最好编写
.ofType(…).switchMap(()=>this.customerDataService.getAllCustomers()).map(result=>({type:CUSTOMERS\u LOADED\u ACTION,payload:{CUSTOMERS:result}))我不确定这是否有助于解决您的问题,但您最好编写.ofType(…).switchMap(()=>this.customerDataService.getAllCustomers()).map(结果=>({type:CUSTOMERS\u LOADED\u ACTION,payload:{CUSTOMERS:result}))代码>在您的效果中。