내가 같이 모난 구성 요소 및 컨트롤러가 너무 일찍 평가ngShow 표현
export class MyService {
static serviceId = 'myService';
private http: ng.IHttpService;
constructor(private $http: ng.IHttpService) {
this.http = $http;
}
public getElements(): ng.IPromise<{}> {
return this.http.get('./rest/elements');
}
}
내가 직면 문제는 배열이다 요소에는 onInit() 호출 후 빈 배열이 들어 있습니다. 그러나 나중에 getELements()의 success 함수가 호출되고 요소가 콘솔에 기록되기 때문에 데이터가 수신 된 것을 알 수 있습니다. 내 템플릿에 사용
요소는 특정 요소를 표시할지 여부를 결정합니다 :
<div>
<elements ng-show="vm.elements.indexOf('A') != -1"></elements>
</div>
문제는 이제 vm.elements 먼저 빈 배열을 포함, 단 후, 배열이 가득이다 실제 값. 그러나 템플릿의이 표현은 이미 평가되었습니다. 어떻게 바꿀 수 있습니까?
값을 변경 한 후에 변경 감지를 강제 실행 하시겠습니까? 변수가 temaptate에서 값을 변경 한 후 Observables를 사용하여 자동으로 변경 감지 트리거 –
컨트롤러에서 getElements()가 잘못되었습니다. 구현은 전혀 의미가 없습니다. –
"Angular 1.5"가 없습니다. AngularJS 1.5 만 있습니다. 게으른 이름으로 더 혼란스러운 시나리오를 만들지 않겠습니다. – isherwood