ОШИБКА TypeError: Невозможно прочитать свойство 'getUsers' из неопределенного - PullRequest
0 голосов
/ 11 ноября 2018

listuser.component.ts

import { Component, OnInit } from '@angular/core';
import { User } from 'src/app/user';
import { UserService } from 'src/app/shared_service/user.service';

@Component({
  selector: 'app-listuser',
  templateUrl: './listuser.component.html',
  styleUrls: ['./listuser.component.css']
})
export class ListuserComponent implements OnInit {
  private users:User[];
  _userService: any;
  constructor(private_userService:UserService) { }

  ngOnInit() {
    this._userService.getUsers().subscribe((users)=>{
      console.log(users);
      this.users=users;
    },(error)=>{
      console.log(error);
    })
  }

}

user.service.ts

import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions} from '@angular/http';
import { Observable } from 'rxjs';
import  'rxjs/add/operator/map';
import 'rxjs-compat';
import 'rxjs/add/operator/catch';
import  'rxjs/add/observable/throw';

import { User } from '../user';

@Injectable({
  providedIn: 'root'
})
export class UserService {
  private baseUrl:string="http://localhost:8080/api";
  private headers = new Headers({'Content-Type':'application/json'});
  private options = new RequestOptions({headers:this.headers});
  _http: any;
  constructor(private_http:Http) { }

  getUsers()
  {
    return this._http.get(this.baseUrl+'/users',this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  getUser(id:Number)
  {
    return this._http.get(this.baseUrl+'/user/'+id,this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  deleteUser(id:Number)
  {
    return this._http.delete(this.baseUrl+'/user/'+id,this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  createUsers(user:User)
  {
    return this._http.post(this.baseUrl+'/users',JSON.stringify(user), this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  updateUsers(user:User)
  {
    return this._http.put(this.baseUrl+'/users',JSON.stringify(user), this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  errorHandler(error:Response){
    return Observable.throw(error||'SERVER ERROR');
  }

}

после запуска этого .. ошибка: ОШИБКА TypeError: Невозможно прочитать свойство 'getUsers' из неопределенного в ListuserComponent.push ../ src / app / components / listuser / listuser.component.ts.ListuserComponent.ngOnInit (listuser.component.ts: 16) at checkAndUpdateDirectiveInline (core.js: 18620) at checkAndUpdateNodeInline (core.js: 19884) в checkAndUpdateNode (core.js: 19846) at debugCheckAndUpdateNode (core.js: 20480) at debugCheckDirectivesFn (core.js: 20440) в Object.eval [as updateDirectives] (ListuserComponent_Host.ngfactory.js? [sm]: 1) в Object.debugUpdateDirectives [as updateDirectives] (core.js: 20432) в checkAndUpdateView (core.js: 19828) в callViewAction (core.js: 20069)

Ответы [ 3 ]

0 голосов
/ 11 ноября 2018

вам нужно добавить пробел между private и _userService, так что это

constructor(private_userService:UserService) { }

должно быть

constructor(private _userService: UserService) { }
0 голосов
/ 11 ноября 2018

В вашем классе обслуживания есть пара проблем -

  1. Пробел между private и _http
  2. Удалить дополнительную объявленную переменную экземпляра _http: any;

Модифицированный код

import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions} from '@angular/http';
import { Observable } from 'rxjs';
import  'rxjs/add/operator/map';
import 'rxjs-compat';
import 'rxjs/add/operator/catch';
import  'rxjs/add/observable/throw';

import { User } from './user';

@Injectable({
  providedIn: 'root'
})
export class UserService {
  private baseUrl:string="http://localhost:8080/api";
  private headers = new Headers({'Content-Type':'application/json'});
  private options = new RequestOptions({headers:this.headers});
  constructor(private _http:Http) { }

  getUsers()
  {
    return this._http.get(this.baseUrl+'/users',this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  getUser(id:Number)
  {
    return this._http.get(this.baseUrl+'/user/'+id,this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  deleteUser(id:Number)
  {
    return this._http.delete(this.baseUrl+'/user/'+id,this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  createUsers(user:User)
  {
    return this._http.post(this.baseUrl+'/users',JSON.stringify(user), this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  updateUsers(user:User)
  {
    return this._http.put(this.baseUrl+'/users',JSON.stringify(user), this.options).map((response:Response)=>response.json())
    .catch(this.errorHandler);

  }
  errorHandler(error:Response){
    return Observable.throw(error||'SERVER ERROR');
  }

}
0 голосов
/ 11 ноября 2018

Похоже, вы забыли добавить пробел после private и перед _userService в вашем конструкторе:

constructor(private _userService:UserService) { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...