当前位置:  开发笔记 > 前端 > 正文

为什么简单的[myHighlight] ="..."适用于属性指令?

如何解决《为什么简单的[myHighlight]=""适用于属性指令?》经验,为你挑选了0个好方法。

dev指南中的myHighlightattribute指令使用名称作为属性选择器:myHighlight

selector: '[myHighlight]',

和输入属性:

@Input('myHighlight') highlightColor: string;

我觉得奇怪/违反直觉,我们不必像这样指定选择器属性(虽然如果我们这样写它,它仍然有效):

highlight me

相反,我们只需要指定输入属性,我们也神奇地获取指令:

highlight me

我不喜欢这个"快捷方式"/句法糖/魔术,因为它看起来像我们绑定到元素的myHighlight属性span,而不是实际发生的事情:我们绑定到属性指令myHighlightmyHighlight属性.因此,仅通过查看HTML,我们就无法轻易确定myHighlight属性绑定到哪个元素/组件/指令.

为什么这样工作?

考虑这个HTML片段:

accessKeyHTML元素属性还是带有输入属性的属性指令accessKey?(仅供参考,accessKey是一个有效的HTML元素属性,因此此示例不是属性指令.)

返回高亮指令...如果我将输入属性名称更改为highlightColor:

@Input() highlightColor: string;

然后我必须指定属性选择器以及属性绑定,我发现它不那么模糊:

highlight me

因此,如果输入属性名称与属性选择器匹配,则"快捷方式"似乎仅起作用.

更新:似乎结构指令使用相同的技巧/快捷方式.例如,

text here

相当于


我只是不喜欢混合属性名称和选择器.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有