2017-12-08 9 views
0

업데이트되지 * ngFor 각도 5 :보기는 관찰과를 사용하여, 나는 기술의 목록을 렌더링하고있어 내보기에서

다음 코드와 기술 검색 :

getSkills(): void { 
    this.skillsDataService.getSkills() 
     .subscribe(
      skills => this.skills = skills.sort(this.skillSort) 
     ); 
} 

그러나 난 '을 명명 된 함수를 사용하는 것이 좋으며 너무 많이 중첩하지 않는 것이 좋습니다. 그래서 코드를 다음과 같이 변경했습니다.

getSkills(): void { 
    this.skillsDataService.getSkills() 
     .subscribe(
      this.processSkills 
     ); 
} 

processSkills(skills: Skill[]): void { 
    this.skills = skills.sort(this.skillSort); 
} 

이제보기가 업데이트되지 않고 this.skills가 채워집니다.

답변

2

"this"in processSkills는 컨트롤러라고 할 때 컨트롤러가 아닙니다. 무슨 뜻인지 이해하려면 processSkills 내부에서 "this"를 로그 아웃하고 자바 스크립트에서 "this"가 작동하는 방법에 대해 알아야합니다. 코드를 작동 시키려면 대신 다음을 시도하십시오.

.subscribe(
     this.processSkills.bind(this) 
    ); 
+0

나는 괜찮습니다. 나는 알아야한다. typescript에 익숙하지 않다. 자바 스크립트로 잘 알고있다. Thnx! (한 번 stackoverflow에 의해 허용 귀하의 답변을 수락) –

+1

좋아, 다행 내가 도울 수 :) –