3
有没有办法触发某个类的所有值转换器重新评估?触发值转换器重新评估
我在问这个,因为我目前正在努力弄清楚本地化的一个很好的方法,特别是有一个翻译字符串的字典。
实施例是如下:
值转换器:
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,但他们的解决方案是向值转换器中添加“:currentLanguage”以引入依赖项,这种方法可行,但感觉重复,因为我必须将字典注入每个视图模型以使“当前语言”变量可用于视图。
我可以从TValueConverter类发出信号,它对dictionary.lang有依赖关系,或者使用事件触发它吗? https://github.com/aurelia/templating-binding:
信号在释放后接下来的到来,盯紧这个问题确实解决/问题/ 25 –