javascript - 如何在 Aurelia 中发出自定义属性信号?

标签 javascript aurelia custom-attribute

对于绑定(bind),我可以使用 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详细解释

关于javascript - 如何在 Aurelia 中发出自定义属性信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471832/

相关文章:

javascript - AJAX 响应 : sugestions for JSON format?

javascript - 使用 AngularJs 更改输入日期的格式未按预期工作

html - 我可以向 HTML 标记添加自定义属性吗?

javascript - 了解 || 的使用在代码中

javascript - onclick,更改类并重置其他类

javascript - '港口' aurelia-skeleton-navigation to typescript

javascript - Aurelia JS 依赖项

javascript - 使用 Aurelia 的谷歌地图

html - 如何将属性添加到输入标签 asp.net 内的 RadioButtonList 项目