我正在寻找一个解决方案来更改我的应用程序中所有字符串的值,类似于国际化/本地化。
我的字符串遵循这样的特定模式:
let sample = "[someID]"然后我用这样的字符串:
<h5>Sample:</h5>
<h5>{{sample}}</h5>结果应该是这样:
样本:
ID的结果
可能的解决方案可能是用类似于"$localize“的角度定位的特殊字符标记字符串,但后面跟着一个自定义函数,以查找给定ID的正确值。
我试图操作基本字符串类型,但据我所知,没有办法更改字符串类型的默认getter。惟一的方法是通过自定义函数扩展字符串原型,但是使用方式如下所示:
<h5>Sample:</h5>
<h5>{{sample.customMethod()}}</h5>这将导致大量工作,因为我需要以这种方式更改所有当前使用的字符串属性。
也许有某种方法可以在字符串被编译的时候改变它的值。例如获取/设置显示值或全局应用某种筛选器。
发布于 2022-05-28 21:00:09
您考虑过在服务中使用BehaviourSubject吗?这样,您就可以通过.next('newValue')将更新后的值转换为所有应用程序。
myService.ts:
globalSample:BehaviourSubject = new BehaviourSubject<string>('default')
globalSample$ = globalSample.asObservable();
updateSample(newValue:string){
this.globalSample.next(newValue);
}示例变量(而不是字符串)是一个可观察的变量,您可以在模板中与异步管道一起使用它,如下所示:
component.ts:
export class myComponent {
sample:Observable<string> = myService.globalSample$
constructor(myService:MyService){}
}component.html:
<h5>Sample:</h5>
<h5>{{sample | async }}</h5>https://stackoverflow.com/questions/72288784
复制相似问题