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
      ,但您可能还是想使用一个指令。如果您想添加可调整大小的行为,组件不是正确的方式。非常感谢,它正在工作!!!