监视组件元素的任何属性的更改

时间:2018-03-23 17:44:53

标签: angular

还是在angular4中观察组件元素的任何属性的变化吗?我想要这个的原因是有一组名为aria属性的属性是Web Accessibility Initiative的一部分,在创建自定义组件时,您需要能够将这些属性从您组件的标记路径转换为某些属性模板中的元素(例如输入)。我不想使用@Input,因为有很多这些属性,我不想为每个属性创建@Input,同时也存在命名问题。我一直在考虑创建一些自定义服务,它将监视任何aria属性的变化,并为组件提供具有这些属性(可能是Observables)的对象,以便它可以在其模板中使用它。我正在查看MutationObserver API,但我想知道是否有任何角度原生方式这样做?

1 个答案:

答案 0 :(得分:0)

Angular材料团队前一段时间也有同样的问题。最初的matInput只是一个常规的角度分量。但他们必须创建大量的@inputs以允许用户绑定到所有本机输入属性。

try:
    my_service_resource.do_stuff()
except my_service_resource.meta.client.exceptions.NotFoundException as e:
    # handle exception

他们通过将输入组件分成两个单独的部分来解决它。容器元素(常规)组件和matInput指令。用户负责转换本机输入组件并将matInput指令附加到本机元素上。

<mat-input></mat-input>

因此,如果您想创建一个专门的输入组件,我建议您使用相同的方法。