1
나는이 클래스가 정의되지 않은 다른 클래스들). 다음은이 클래스 사용하여 파일의 한 예입니다 :타이프 라이터 기능 반환 내 <strong>각도 2</strong> 프로젝트에서
: 내가 할 경우는 loadEnvData()
함수에 보면 그래서
import { Injectable, Component } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';
import { ApiEnvConf } from './api-env-conf-class';
@Injectable()
@Component({
providers: [ ApiEnvConf ]
})
export class ImportConfig {
/**
* @type {ApiEnvConf}
*/
public envParam = new ApiEnvConf();
constructor(
public http: Http
) {}
loadEnvData() {
this.http.get('assets/env-config/parameters.json')
.map((res: Response) => (res.json()))
.subscribe(
data => {
this.envParam = this.instanciateApiEnvConfClass(data);
return this.envParam;
},
err => {
console.log("oops !");
return err;
}
)
}
instanciateApiEnvConfClass(data: Object){
let apiEnvConf = new ApiEnvConf();
// set dev by calling getter of ApiEnvConf class
apiEnvConf.devEnv = {
environnement: data["dev"]["environnement"],
basePath: new URL(data["dev"]["basePath"])
};
// set stagging by calling getter of ApiEnvConf class
apiEnvConf.stagingEnv = {
environnement: data["staging"]["environnement"],
basePath: new URL(data["staging"]["basePath"])
};
// set prod by calling getter of ApiEnvConf class
apiEnvConf.prodEnv = {
environnement: data["prod"]["environnement"],
basePath: new URL(data["prod"]["basePath"])
};
return apiEnvConf;
}
}
내가 내 콘솔 브라우저에서이 결과를 가지고 console.log(this.envParam);
return
문 전에
내 수업 ApiEnvConf가 비어 있지 않아 필요한 모든 속성이 있습니다.
클래스 ImportConfig는 환경 설정을 초기화하기 위해 많은 파일에서 사용하는 또 다른 클래스입니다.
이import { Injectable, Component } from '@angular/core';
import { ImportConfig } from '../services/import-config';
import 'rxjs/add/operator/map';
@Injectable()
@Component({
providers: [ ImportConfig ]
})
export class Test {
constructor(public http: Http, public config: ImportConfig) {
this.config;
this.check();
}
check() {
let test = this.config.loadEnvData();
console.log(test);
}
/*
...
...
...
*/
}
console.log(test);
의 출력은"정의되지 않은"저를 반환
loadEnvData(env: string = "dev") {
this.http.get('assets/env-config/parameters.json')
.map((res: Response) => (res.json()))
.subscribe(
data => {
this.envParam = this.instanciateApiEnvConfClass(data);
return this.envParam;
},
err => {
console.log("oops !");
return err;
}
)
// Note: *here* is where you would, in theory, return something
}
당신이 명시 적으로 return
없이 함수를 호출, 그것은 undefined
를 반환
'this.config;는 무엇을해야합니까? – Pointy
코드 디버깅을 시도하고 loadEnvData에 중단 점을 추가 한 다음 행을 참조하십시오. – Juan
'loadEnvData'는 아무 것도 반환하지 않습니다. – 4castle