将HTML传递到我的组件中

Lim*_*nic 13 html angular-components angular

考虑以下组件sidebar.component.html:

<div class="sidebar">
  <ul>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Go to the dashboard">
      <a href="#">
        <i class="material-icons">home</i>
        <span>Home</span>
      </a>
    </li>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Manage your times">
      <a href="#">
        <i class="material-icons">watch_later</i>
        <span>Times</span>
      </a>
    </li>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Go to settings">
      <a href="#">
        <i class="material-icons">settings</i>
      </a>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

app.component.html,我使用侧边栏使用其标签(<sidebar>).但是,现在我想制作它,以便<li><sidebar>标签内部给出元素,这样它们就不再在内部sidebar.component.html使元件可以重复使用了.

我不确定这叫什么,我找不到它.

提前致谢.

Gün*_*uer 24

创建一个侧边栏组件,<ng-content>其中应显示传递的子项

@Component({
  selector: 'sidebar',
  template: '<ul><ng-content></ng-content></ul>'
})
export class SidebarComponent {
}
Run Code Online (Sandbox Code Playgroud)

并使用它

<sidebar>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Go to the dashboard">
      <a href="#">
        <i class="material-icons">home</i>
        <span>Home</span>
      </a>
    </li>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Manage your times">
      <a href="#">
        <i class="material-icons">watch_later</i>
        <span>Times</span>
      </a>
    </li>
    <li class="tooltipped" data-position="right" data-delay="50" data-tooltip="Go to settings">
      <a href="#">
        <i class="material-icons">settings</i>
      </a>
    </li>
</sidebar>
Run Code Online (Sandbox Code Playgroud)

  • 变化在于 Angular 添加了 `_ng_context-xxx` 属性并在将样式添加到 DOM 之前重写了样式。您需要添加 `:host /deep/ li {}` 或类似的内容以使样式跨组件边界。 (2认同)
  • 好的,谢谢,我有足够的信息让我继续前进! (2认同)