2017-12-25 27 views
-3

저는 Angular 5를 사용하고 있으며, 함수 호출 결과에 따라 배열에서 찾은 다음 요소를 반환하여 변수 객체로 let L을 사용합니다. 그걸 잡아.Angular5 * ngIf = "afunctioncall(); L "함수가 4 번 호출되는 함수를 만듭니다.

이 작업을 수행 할 때 함수가 여러 번 호출 된 것으로 나타났습니다.

enter image description here

이 나는이 상황을 보여줄 수있는 스택 공세를 만들었습니다. 여기서 함수는 4 번 호출되지만, 로컬 어플리케이션에서는 6 번 이상 호출됩니다. 나는 이것을 알고

https://stackblitz.com/edit/angular-ypwswn

때문에 변경 감지주기이다. 그러나 나는이 상황을 논리적으로 어떻게 풀어 낼지 알 수 없었다. 이 각도 2. 관련되면서

나는 나는 그것이

Angular2 *ngIf="afunctioncall()" results in the function being called 9 times

'을 console.log 4 배 출력 관련이 확실하지 않다 그러나 다음과 같은 글을 본 적이있다.

누구든지 나를 가리킬 수 있습니까, 아니면 놓친 것이 있습니까?

그리고이를 방지 할 수있는 방법이 있습니까?

도움이 될 것입니다.

해당 방법으로 배열을 전달하고 해당 배열에서 선택한 다리를 가져와야합니다.

This is View This is method

+0

각이 솔루션 대신 템플릿

export class AppComponent implements OnInit { finaldata : any; ngOnInit() { this.finaldata = this.getSelectedLeg(this.data); } } 

에 ngOnInit의 기능은 여전히 ​​관련이있다. – YounesM

+0

해결책을 설명해 주시겠습니까? @YounesM –

+0

@UmerMehAr 그 해결책에 대해 무엇을 이해하지 못합니까? 너 해봤 니? 어떻게 된 거예요? – jonrsharpe

답변

1

전화 HTML

<div *ngIf="finaldata; let L"> 

</div> 
+0

감사하지만 다시 내 질문을 참조하십시오 제발 내가 더 2 사진을 추가했습니다 –

+1

당신의 문제는 지금 당신이 명확하게 설명 할 수 있습니다 –

+0

내 문제는 getSelectedLeg 메서드에서'console.log (...)'를 추가 할 때입니다. 5 번 이상 6 번 콘솔합니다. 그것은 단지 1 시간이어야합니다. 각도 변화 감지기 감지는 다른 곳에서 변경되었지만이 기능을 아마도 호출 할 수도 있습니다. –