Übergeben von HTML an meine Komponente

Lesezeit: 2 Minuten

Benutzeravatar von Limnic
Limnisch

Betrachten Sie die folgende Komponente 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>

In app.component.htmlverwende ich die Seitenleiste mit ihren Tags (<sidebar>). Jetzt will ich es aber so machen das die <li> Elemente sind innerhalb der angegeben <sidebar> Tags, damit sie nicht mehr drin sind sidebar.component.html um die Komponente wiederverwendbar zu machen.

Ich bin mir nicht sicher, wie das heißt, und ich habe Probleme, es zu finden.

Vielen Dank im Voraus.

  • Ich verstehe nicht, was das Problem ist. Womöglich <ng-content></ng-content> zur Einschließung?

    – Günter Zöchbauer

    16. Februar 2017 um 12:17 Uhr

  • Ich habe den Beitrag aus Gründen der Klarheit aktualisiert, ich werde ausprobieren, danke.

    – Limnisch

    16. Februar 2017 um 12:20 Uhr

Erstellen Sie eine Seitenleistenkomponente mit einer <ng-content> wo die übergebenen Kinder angezeigt werden sollen

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

und benutze es gerne

<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>

  • Ja, das funktioniert wie vorgesehen! Wie ist jedoch das Verhalten mit CSS? Mein Styling gilt nicht mehr für die Elemente, aber ich kann keine Änderungen im HTML erkennen, die eine Änderung meiner Selektoren bewirken würden.

    – Limnisch

    16. Februar 2017 um 12:29 Uhr

  • Die Änderung besteht darin, dass Angular hinzufügt _ng_context-xxx Attribute und schreibt Ihre Stile neu, bevor sie dem DOM hinzugefügt werden. Sie müssen hinzufügen :host /deep/ li {} oder ähnliches, damit Stile Komponentengrenzen überschreiten.

    – Günter Zöchbauer

    16. Februar 2017 um 12:31 Uhr

  • Okay, danke, ich habe genug Informationen, um loszulegen!

    – Limnisch

    16. Februar 2017 um 12:36 Uhr

1448080cookie-checkÜbergeben von HTML an meine Komponente

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy