代码之家  ›  专栏  ›  技术社区  ›  Luke Vo

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

  •  1
  • Luke Vo  · 技术社区  · 6 年前

    对于装订,我可以使用 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 回复  |  直到 6 年前
        1
  •  1
  •   zewa666    6 年前

    这几乎就是Aureliai18n插件所做的,当被注意到时,它还可以使用EventAggregator动态更新自定义属性值。 See this Aurelia Discourse discussion 详细解释

    推荐文章