"이것.앱inits[i]는 함수가 아닙니다.
APP_를 사용하려고 합니다.구성 파일에서 데이터를 로드하는 INITIALIZER.다음 오류가 발생합니다.
"처리되지 않은 약속 거부: this.appInit [i]는 함수가 아닙니다; Zone:; Task: Promise.값: TypeError: this.app그 자체[i]는 함수가 아닙니다."
코드:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class ApiConfig {
private urlList: any = null;
constructor(private http: Http) {
}
public getUrl(key: any) {
return this.urlList[key];
}
public loadConfig(){
let retPromise: Promise<any> = this.http.get('./assets/config/api-config.json')
.map(res => res.json()).toPromise();
retPromise.then(resp => this.urlList=resp.urlList);
//this.urlList = retPromise.urlList;
return retPromise;
}
}
export function apiConfigProvider(config: ApiConfig) {
config.loadConfig();
}
제가 뭘 잘못하고 있는지에 대한 도움은 없나요?
편집:
아담의 해결책은 원래의 오류를 고쳤습니다.하지만 이제 새로운 오류가 보입니다.
유형 오류: 정의되지 않은 'urlList' 속성을 설정할 수 없습니다.
APIConfig 인스턴스가 생성되지 않은 것으로 알고 있습니다.그러나 Angular에서 구성 파일을 로드할 때 나타나는 모든 예는 동일한 예를 보여줍니다.APIConfig 클래스를 강제로 생성하는 방법이 궁금합니다.어떻게 하면 싱글톤으로 만들 수 있을까요?아래는 ApiConfig의 사용법입니다.
export BaseService {
constructor (private config:ApiConfig){}
public GetUrl (key: string) {
return config.urlList[key];
}
}
답변: 위 코드에서 약속이 생성되는 방식에 문제가 있는 것 같습니다.https://gist.github.com/fernandohu/122e88c3bcd210bbe41c608c36306db9 링크에 나와 있는 대로 loadconfig 방법을 수정했습니다. 이것으로 문제가 해결되었습니다.
내보내기 함수 문에 있는 함수를 반환해야 하기 때문인 것 같습니다.
export function apiConfigProvider(config: ApiConfig) {
return () => config.loadConfig();
}
언급URL : https://stackoverflow.com/questions/46076051/this-appinitsi-is-not-a-function
'programing' 카테고리의 다른 글
PHP를 사용하는 Oracle에서 선택된 행 수 계산 (0) | 2023.08.02 |
---|---|
왼쪽 외부 조인에 대한 SQL 성능이 존재하지 않음 (0) | 2023.08.02 |
코드에서 SceneKit SCNskinner 개체를 만드는 방법은 무엇입니까? (0) | 2023.08.02 |
처리되지 않은 약속거부 경고:유형 오류: Jest + Angular를 사용하여 원형 구조를 JSON으로 변환하는 중 (0) | 2023.08.02 |
Python 헤더와 함께 POST 전송 (0) | 2023.08.02 |