Angular 有没有办法创建HTML模板取代自定义选择器的组件?
我在努力自学英语。我正在尝试构建组件“触发器调整大小”,我希望将其呈现为:Angular 有没有办法创建HTML模板取代自定义选择器的组件?,angular,angular2-directives,Angular,Angular2 Directives,我在努力自学英语。我正在尝试构建组件“触发器调整大小”,我希望将其呈现为: <a class="hidden-xs" href=""> <em class="fa fa-navicon"></em> </a> 而不是: <trigger-resize> <a class="hidden-xs" href=""> <em class="fa fa-navicon"></em&
<a class="hidden-xs" href="">
<em class="fa fa-navicon"></em>
</a>
而不是:
<trigger-resize>
<a class="hidden-xs" href="">
<em class="fa fa-navicon"></em>
</a>
</trigger-resize>
(我不希望自定义选择器渲染)
在角1。我知道这将通过“替换:真实”选项实现,但是否有可能在angular2中实现
亲切问候您可以在
@组件({
选择器:“[triggerResize]”
模板:“”
})
这也非常适用于需要特定标记名的其他情况,如内部
或内部`
一种方法是使用属性
<a triggerResize class="hidden-xs" href=""></a>
它有一个像
@Component({
selector : 'a[triggerResize]', //select all <a> tags with triggerResize attribute
template : '<em class="fa fa-navicon"></em>'
})
@组件({
选择器:“a[triggerResize],//选择具有triggerResize属性的所有标记
模板:“”
})
CamelCase属性现在是angular2中自定义属性的正确语法。问题的直接答案是“否”-您的自定义元素/选择器将在HTML中。引述:
Angular 2中不支持替换其宿主元素的指令(Angular 1中的replace:true指令)。在许多情况下,这些指令可以升级为常规组件指令
也就是说,对于您的特定用例,正如其他人已经提到的,使用属性选择器的组件可以工作
另见
使用
上的属性作为选择器,而不是像
这样的标记,然后在组件注释[trigger resize]
中作为选择器,怎么样?我不想让所有“a”标记都变成“trigger resize”,这可能吗?我在前面解释过,所有带有trigger resize
属性的标记都变成了trigger resize
,但您可能还是想使用一个指令。如果您想添加可调整大小的行为,组件不是正确的方式。非常感谢,它正在工作!!!