gpt4 book ai didi

angular - 如何从管道加载 JSON?

转载 作者:可可西里 更新时间:2023-11-01 16:29:39 25 4
gpt4 key购买 nike

我有一个加载 JSON 文件并在自定义管道中使用该服务的服务:

import { Pipe, PipeTransform } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { LanguageLoadService } from '../../services/language-load/language-load.service';

@Pipe({name: 'langAsset'})
export class LangAsset implements PipeTransform {

constructor(private languageService: LanguageLoadService) {

}

transform(textKey: string): Observable<any> {
return new Observable(observer => {
this.languageService.loadLanguage("en-US").subscribe((langData) => {
observer.next(langData[textKey] ? langData[textKey] : 'Error');
})
});
}
}

在模板上:

<p>{{'test' | langAsset | async }}</p>

但似乎转换在服务完成加载 JSON 之前运行,因为结果是页面上的 [object Object],并且 console.log 从内部登录时打印出来很好loadLanguage 订阅。我怎样才能通过在转换函数中返回一个可观察对象而不是一个字符串来让它重新运行?我知道我必须使用 AsyncPipe,但我不确定该怎么做。

最佳答案

尝试使用 <p>{{'test' | langAsset | async | json}}</p>

是嵌套的Json对象,html标签无法理解json管道相当于stringfy Json pipe

关于angular - 如何从管道加载 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47565685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com