如何在 Aurelia 中发出自定义属性信号?
How to signal a custom attribute in Aurelia?
对于绑定,我可以使用 signal
以防值被外部更新。自定义属性怎么样?
我有以下 data-language
自定义属性:
import { customAttribute, autoinject } from 'aurelia-framework';
import { LanguageService } from "./language";
@autoinject
@customAttribute("data-language")
export class LanguageCustomAttribute {
private value: string;
constructor(
private element: Element,
private languageService: LanguageService) { }
public bind() {
var e = $(this.element);
e.html(this.languageService.getText(e.attr("data-language")));
}
}
此自定义属性已使用
全局注册
aurelia.use
.standardConfiguration()
.globalResources("./components/language/data-language");
现在假设用户可以在运行时更改语言(this.languageService.getText
的结果会改变)。我如何发送信号以便更新所有 [data-language]
个元素?
这几乎就是 Aurelia I18N 插件所做的,以及使用 EventAggregator 在注意到时动态更新自定义属性值。 See this Aurelia Discourse discussion详细解释
对于绑定,我可以使用 signal
以防值被外部更新。自定义属性怎么样?
我有以下 data-language
自定义属性:
import { customAttribute, autoinject } from 'aurelia-framework';
import { LanguageService } from "./language";
@autoinject
@customAttribute("data-language")
export class LanguageCustomAttribute {
private value: string;
constructor(
private element: Element,
private languageService: LanguageService) { }
public bind() {
var e = $(this.element);
e.html(this.languageService.getText(e.attr("data-language")));
}
}
此自定义属性已使用
全局注册 aurelia.use
.standardConfiguration()
.globalResources("./components/language/data-language");
现在假设用户可以在运行时更改语言(this.languageService.getText
的结果会改变)。我如何发送信号以便更新所有 [data-language]
个元素?
这几乎就是 Aurelia I18N 插件所做的,以及使用 EventAggregator 在注意到时动态更新自定义属性值。 See this Aurelia Discourse discussion详细解释