Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angular 2 ng2 translate自定义TranslateLoader不使用API_Angular_Ng2 Translate - Fatal编程技术网

angular 2 ng2 translate自定义TranslateLoader不使用API

angular 2 ng2 translate自定义TranslateLoader不使用API,angular,ng2-translate,Angular,Ng2 Translate,ng2 translate从API获取数据时不使用自定义TranslateLoader。下面是我的自定义TranslateLoader translateCustomLoader.ts @Injectable() export class CustomTranslateLoader implements TranslateLoader { constructor(private http: Http, private apiService: AuthHttp) { console.l

ng2 translate从API获取数据时不使用自定义
TranslateLoader
。下面是我的自定义TranslateLoader

translateCustomLoader.ts

@Injectable()
export class CustomTranslateLoader implements TranslateLoader  {

    constructor(private http: Http, private apiService: AuthHttp) { console.log("customer loader initialized"); }

    getTranslation(lang: string): Observable<any>{
        var apiAddress = "http://test.com/api/gettranslationsfromDB?culture=" + lang;

        return this.apiService.get(apiAddress).map((res) => res.json());

        //return Observable.of({ "hello": "translatedhello","welcome":"translatedwelcome"});
    }
}
providers: [CustomTranslateLoader, { provide: TranslateLoader, useClass: CustomTranslateLoader}]
在app.module.ts中将TranslateLoader添加到提供商

@Injectable()
export class CustomTranslateLoader implements TranslateLoader  {

    constructor(private http: Http, private apiService: AuthHttp) { console.log("customer loader initialized"); }

    getTranslation(lang: string): Observable<any>{
        var apiAddress = "http://test.com/api/gettranslationsfromDB?culture=" + lang;

        return this.apiService.get(apiAddress).map((res) => res.json());

        //return Observable.of({ "hello": "translatedhello","welcome":"translatedwelcome"});
    }
}
providers: [CustomTranslateLoader, { provide: TranslateLoader, useClass: CustomTranslateLoader}]
在我的HTML页面中,我在下面

<h4>{{ 'hello' | translate }}</h4>


因此,我非常确定配置没有任何问题。我在这里缺少什么?

我通过如下更改getTranslation使其正常工作

getTranslation(lang: string): Observable<any> {
    var apiAddress = "http://test.com/api/gettranslationsfromDB?culture=" + lang;
    return Observable.create(observer => {
            this.authService.get(apiAddress)
                .subscribe((res: Response) => {
                    observer.next(JSON.parse(res.json()));
                    observer.complete();               
                });
        });

    }
getTranslation(lang:string):可观察{
var apiAddress=”http://test.com/api/gettranslationsfromDB?culture=“+朗;
返回可观察的。创建(观察者=>{
this.authService.get(apiAddress)
.订阅((回复)=>{
next(JSON.parse(res.JSON());
observer.complete();
});
});
}
虽然对我来说没什么意义。希望这对别人有帮助

getTranslation(lang: string): Observable<any> {
    var apiAddress = "http://test.com/api/gettranslationsfromDB?culture=" + lang;
    return Observable.create(observer => {
            this.authService.get(apiAddress)
                .subscribe((res: Response) => {
                    observer.next(JSON.parse(res.json()));
                    observer.complete();               
                });
        });

    }