J'utilise "redux-observable" pour les capacités Redux dans AngularJS v1.6. code suivant est une épopéeServices d'injection dans Redux Epic Angular JS
export const getAllBidsAPI : any = (action$: ActionsObservable<any>, store: any, { customerService = CustomerService }) =>
action$.ofType(GET_ALL_BID)
.mergeMap((action : any) =>
Observable.fromPromise(customerService.getCustomers())
.map((res: any) => ({type : GET_ALL_BID_SUCCESS , payload : res.data.bid}))
);
Ici CustomerService n'est pas reconnu. Je suppose que ce n'est pas injecté.
const rootEpic = combineEpics(
getAllBidsAPI
);
const rootReducer = combineReducers({
bidReducer
});
const epicMiddleware = createEpicMiddleware(rootEpic, {
dependencies : {CustomerService}
});
export const store = createStore(
rootReducer,
applyMiddleware(epicMiddleware)
);
C'est ici que nous ajoutons CustomerService en tant que dépendance dans Epic. Mais, j'ai une erreur.
Impossible de lire la propriété « getCustomers » undefined
comment résolvez-vous cette dépendance? – Hitmands
@Hitmands que signifie exactement en résolvant la dépendance? –
AngularJS (1. *) possède l'objet '$ injector', ce qui signifie que vous devez enregistrer les dépendances et les utiliser uniquement lorsque cela est autorisé par le framework (composants internes, services, contrôleurs, etc ...). Alors, comment résolvez-vous les minuscules 'customerService'? vous avez fait: 'dependencies: {CustomerService}' en majuscules ... – Hitmands