首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局更改角/类型记录中任何字符串的值

全局更改角/类型记录中任何字符串的值
EN

Stack Overflow用户
提问于 2022-05-18 11:57:59
回答 1查看 107关注 0票数 0

我正在寻找一个解决方案来更改我的应用程序中所有字符串的值,类似于国际化/本地化。

我的字符串遵循这样的特定模式:

代码语言:javascript
复制
let sample = "[someID]"

然后我用这样的字符串:

代码语言:javascript
复制
<h5>Sample:</h5>
<h5>{{sample}}</h5>

结果应该是这样:

样本:

ID的结果

可能的解决方案可能是用类似于"$localize“的角度定位的特殊字符标记字符串,但后面跟着一个自定义函数,以查找给定ID的正确值。

我试图操作基本字符串类型,但据我所知,没有办法更改字符串类型的默认getter。惟一的方法是通过自定义函数扩展字符串原型,但是使用方式如下所示:

代码语言:javascript
复制
<h5>Sample:</h5>
<h5>{{sample.customMethod()}}</h5>

这将导致大量工作,因为我需要以这种方式更改所有当前使用的字符串属性。

也许有某种方法可以在字符串被编译的时候改变它的值。例如获取/设置显示值或全局应用某种筛选器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-28 21:00:09

您考虑过在服务中使用BehaviourSubject吗?这样,您就可以通过.next('newValue')将更新后的值转换为所有应用程序。

myService.ts:

代码语言:javascript
复制
globalSample:BehaviourSubject = new BehaviourSubject<string>('default')
globalSample$ = globalSample.asObservable();

updateSample(newValue:string){
   this.globalSample.next(newValue);
}

示例变量(而不是字符串)是一个可观察的变量,您可以在模板中与异步管道一起使用它,如下所示:

component.ts:

代码语言:javascript
复制
export class myComponent {
sample:Observable<string> = myService.globalSample$
constructor(myService:MyService){}
}

component.html:

代码语言:javascript
复制
<h5>Sample:</h5>
<h5>{{sample | async }}</h5>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72288784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档