2017-09-29 43 views
0

我想从服务器角数据2应用程序中获取数据,但我在某处做某事可能不是从服务器加载数据。这不会将我的数据加载到表中。角材2表从服务器获取数据

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() { } 
} 

,如果我尝试connect方法里面返回它给我的错误控制台日志。

这里是我的UserService.ts我在那里调用用户API来获取数据。

@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}`); 
    } 

} 

回答