有没有办法触发某个类的所有值转换器重新评估?
我之所以这样问,是因为我目前正试图找出一种很好的本地化方式,特别是有一个翻译字符串的字典。
示例如下:
价值转换器:
export class TValueConverter {
static inject() { return [Dictionary] }
dictionary: Dictionary;
constructor(dictionary: Dictionary) {
this.dictionary = dictionary;
}
toView(key: string, replacements: any): string {
return this.dictionary.translate(key, replacements);
}
}
视图:
<template>
<p>${"hello_world" | t: {"name": "Some User"} }</p>
</template>
然后将其转换为
<p>
Hello Some User!
</p>
但是,用户可以更改当前语言,当他们这样做时,我想使用新语言重新评估此值转换。
我的实施受到https://github.com/zewa666/aurelia-i18next的启发,但他们的解决方案是添加&#34 ;: currentLanguage&#34;到值转换器,以引入依赖,这是有效的,但感觉重复,因为我将不得不将字典注入每个视图模型,以便使#34; currentLanguage&#34;视图可用的变量。
我可以从TValueConverter类发出信号,它是否依赖于dictionary.lang,或者使用事件触发它?
答案 0 :(得分:2)