2017-09-29 3 views
0

Ich versuche, Daten von Server in Angular Material 2 Application zu bekommen, aber ich mache etwas falsch irgendwo vielleicht nicht Daten vom Server geladen wird. Dies lädt meine Daten nicht in die Tabelle. es gibt mir Fehler in KonsolenprotokollAngular Material 2 Tabelle erhalten Daten vom Server

userComponent.ts

@Component({ 
    selector: 'app-user', 
    templateUrl: './user.component.html', 
    styleUrls: ['./user.component.css'] 
}) 
export class UserComponent { 
    displayedColumns = ['id', 'firstName', 'lastName', 'email']; 
    dataSource: UserDataSource; 

    constructor(private userSrvc: UserService) { } 

    ngOnInit() { 
     this.dataSource = new UserDataSource(this.userSrvc); 
    } 

    logPage(length) { 
     console.log(length); 
    } 
} 

export class UserDataSource extends DataSource<User> { 
    userSrvc: any; 
    length = 20; 
    data: Observable<User[]>; 

    /** Connect function called by the table to retrieve one stream containing the data to render. */ 
    constructor(userService) { 
     super(); 
     this.userSrvc = userService; 
    } 

    connect(): Observable<User[]> { 

     this.userSrvc.get().subscribe(users => { 
      this.data = users; 
     }) 
     return this.data; 
    } 

    disconnect() { } 
} 

wenn ich versuche, in der connect-Methode zurückzukehren.

hier ist meine UserService.ts, wo ich Benutzer API für den Erhalt von Daten aufrufen.

@Injectable() 
export class UserService { 

    constructor(private http: Http) { } 

    get(): Observable<User[]> { 
    let header: Headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options: RequestOptions = new RequestOptions({ headers: header }); 
    return this.http.get(`${BASE_URL}user/get/`, options) 
     .map((response: Response) => { 
     return <User[]>response.json(); 
     }).catch(this.errorHandler); 
    } 

    errorHandler(error: Response) { 
    return Observable.throw(`Error Message: ${error.statusText}`); 
    } 

} 

Antwort