如何在Aurelia中表示自定义属性?

时间:2018-07-23 05:04:06

标签: javascript aurelia aurelia-binding custom-attribute

对于绑定,我可以使用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]元素?

1 个答案:

答案 0 :(得分:1)

这几乎是Aurelia I18N插件在使用EventAggregator时在发现通知时动态更新自定义属性值的功能。 See this Aurelia Discourse discussion进行详细说明