2017-11-24 5 views
1

Ich habe einen Service, der mit meiner Produkte Daten in einem Einkaufswagen app funktioniert. Was ich will ist, einige Daten, die von der getProducts() Methode in ursprünglichen Zustand meines Redux Teil der App generiert werden.Wie übergebe ich die Servicedaten in den Ausgangszustand in Redux

Mein Service:

import { Injectable } from '@angular/core'; 
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; 
import { Http, HttpModule, Response } from '@angular/http'; 
import { Observable } from 'rxjs/Rx'; 

import 'rxjs/add/operator/map'; 


@Injectable() 
export class ProductsService { 

    private products = new BehaviorSubject<any>([]); 

    product = this.products.asObservable(); 
    dataUrl = "./assets/products.json"; 

    constructor(private _http: Http) { } 

    getProducts(): Observable<any>{ 
    return this._http.get(this.dataUrl) 
    .map((res: Response) => res.json()); 
    } 

    updateProducts(product){ 
    this.products.next(product); 
    } 

} 

Mein store:

import { IProduct } from './product'; 
import { ADD_PRODUCT, REMOVE_PRODUCT, REMOVE_ALL_PRODUCTS } from './actions'; 
import { ProductsService } from './service/products.service'; 

export class IAppState { 
    products: IProduct[]; 
} 

export const INITIAL_STATE: IAppState = { 
    constructror(private _prods: ProductsService){ } 
    products = this._prods.getProducts() 
} 


export function rootReducer(state, action){ 
    switch(action.type){ 
     case ADD_PRODUCT: 
      action.product.id = state.products.length + 1; 
      action.product.isAdded = true; 
      console.log(state.products) 
      return Object.assign({}, state, { 
       products: state.products.concat(Object.assign({}, action.product)) 
      }) 

     case REMOVE_PRODUCT: 
      action.product.isAdded = false; 
      return Object.assign({}, state, { 
       products: state.products.filter(p => p.id !== action.id) 
      }) 

     case REMOVE_ALL_PRODUCTS: 
      return Object.assign({}, state, { 
       products:[] 
      }) 
    } 
    return state; 
} 

Aber Compiler sagt es ein Fehler (Unexpected Token) in

constructror(private _prods: ProductsService){ } 

Wie passieren die Daten von mein Service zum Anfangszustand richtig?

Antwort

0

versuchen Sie dies:

import {provideStore, INITIAL_STATE} from "@ngrx/store"; 

bootstrap(App, [ 
    provideStore({counter}), 
    provide(INITIAL_STATE, { 
     deps: [MyCounterService], 
     useFactory(counterService){ 
     return {counter: service.getCounterValue()}; 
     }]) 
    }); 
Verwandte Themen