2017-05-16 5 views
-1

아래는 내 postData 코드입니다. 내 요청을 모두 잘 작동하고 있습니다. 내가 POST 요청을 할 때, 나는이 작동하는 동안Angular2 : 정의되지 않은 'post'속성을 읽을 수 없습니다.

@Injectable() 
export class UserService { 
    constructor(public _http: Http) { } 

     postData(id: any) { 
     let data = { "jql": id }; 
        let body = JSON.stringify(data); 
        console.log(body); 
        return this._http.post('/api/Desk/Tickets/Search', body, { headers: this.getHeaders() }) 
         .map((res: Response) => res.json()); 
    } 
} 

호출 기능

UserService.prototype.postData(id).subscribe(data=> { 
      console.log('In response'); 
     }); 
+1

콜백으로 호출됩니까? 어쩌면 당신은'this' 문맥을 잃고 있으며 화살 기능이나 비슷한 것을 필요로 할 것입니다. –

+0

서비스 코드를 공유 할 수 있습니까? –

+0

전체 서비스 클래스로 질문을 업데이트하고 함수를 호출했습니다. – indra257

답변

0

"정의의 '게시물을'속성을 읽을 수 없습니다"점점 오전 :

UserService.prototype.postData(id).subscribe(data=> { 
      console.log('In response'); 
     }); 

당신은 깰 "this"참조를 사용하여 Angular dependency injection을 피하십시오. 당신이 사용에서 호출되는 경우 당신은 당신의 서비스를 주입해야합니다 AJT_82 @

이 옳다

_localServiceInstance.postData(...) instead of UserService.prototype... 

업데이트, 당신은 잘못 함수의 구문을 가지고 있고 그것은이 참조를 망쳐 놨어요. 그것은이어야한다 :

legendItemClick: (e) => { 
    console.log(this); 
    return false; 
} 

이것은 또한 미친 읽을 수 없다. 그런 다음

series: { 
    animation: false, 
    point: { 
     events: {} 
    } 
} 

단순히 이벤트를 할당 할 수있는 파일의 옵션을 선언이나 다른 곳 후 :

여기
this.options.plotOptions.series.point.events.legendItemClick = function(e) { 
    console.log(this); 
    return false; 
}; 

가 작동 버전 : 이벤트와 함께 빈 객체를 시리즈를 정의 https://plnkr.co/edit/ZJQeGLbz3OkR3mkpqc7j?p=info

+0

나는 그것을 시도했다. "this"는 highcharts 속성이 "this"에서 사용 가능하기 때문에 호출 함수에서 localservice 인스턴스를 생성 할 수 없었습니다. – indra257

+0

나는 그것이 무슨 뜻인지 잘 모르겠습니다. UserService에 전화해야하는 곳에서 코드를 제공 할 수 있습니까? HTTP 서비스처럼 UserService를 생성자에 삽입해야합니다. –

+0

그래서 기본적으로, 내 호출 함수에서 - 나는 constructor (private userService : UserService) {}을 가지고 있으며 아래처럼하고있다. this.userService.PostData가 정의되지 않았기 때문에이 위치에서 실패합니다. 하이 차트의이 속성은이 속성을 클래스보다 우선합니다. newfunction (id : any) { this.userService.postData (id); UserService.prototype.postDonutData (id) .subscribe (dashboardsData => { console.log ('응답 중'); }); } – indra257