Umbraco AncestorOrSelf(int) - was tut es?
Wenn Sie verwenden:
@Model.AncestorOrSelf(3)
In einem .cshtml-Vorlage in Umbraco, das würde vermutlich begrenzen die Knoten-traversal zu 3 Ebenen. Ist dies richtig, und wenn ja, kann jemand auch bestätigen, wenn der aktuelle Knoten hat den index null?
InformationsquelleAutor der Frage Chris Halcrow | 2013-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oben ist die Bemerkung, dass Sie mit Umbraco 7.x rc-version.
Nehmen Sie ein Beispiel für den Inhalt Baum unten ist diese Art von ähnlich, dass Sie normalerweise in Inhalt Abschnitt in umbraco admin-Bereich:
Jedem content-Dokument hat eine Ebene und standardmäßig beginnt es mit 1.
Wie Sie sehen können in dem Beispiel unten, die Ebene wird auf die Erhöhung - level + 1. also es beginnt mit 1 und dann gehen Sie einfach auf hinzufügen 1, um Ihre sub-Ebenen.
Also, wenn Sie erwähnen, 3 parameter für die AncestorOrSelf, Sie bitten zu bewegen, um 3. Ebene in den tree aus der aktuellen element kann jedes Dokument/Teilansicht und aufhören, für jede weitere, wenn seine Vorfahren gefunden.
AncestorOrSelf(level)
gibt eine einzige Sache, die, wenn der Typ DynamicPublishContent d.h. Sie haben Zugriff auf viele Eigenschaften wie id, name, url, etc.Es ist im Grunde für bezaubernde Vorfahren von level, egal, was Ihre aktuelle Niveau oder currentpage-Objekt ist.
Zum Beispiel, wenn Sie erstellen eine navigation in Ihrem Haupt-layout, so teilen Sie Sie auf allen Seiten Ihrer Website, werden Sie etwas wie dies in Ihrer Vorlage:
Basierend auf unserem Beispiel, wird es Ihnen:
Über Uns, Kontakt, News-Bereich (in form einer Liste und mit den richtigen links)
InformationsquelleAutor der Antwort Siddharth Pandey
Hinzufügen, um die Antwort von SiddharthP ich denke, die OP ist möglicherweise auf der Suche für die @CurrentPage.(Int) - Methode - dies ist die Traversen oben auf dem Baum aus der aktuellen Ebene, die durch die spezifizierte Menge von Ebenen.
Wenn Sie So wollen, der Großvater des aktuellen Knotens - @CurrentPage.Up(2) oder @ - Modell.Inhalt.(2) für die stark typisierte version.
Betrachten Sie es als Vorfahr beginnt von der Wurzel des content-tree nach Oben und unten beginnt, von wo aus Sie in Richtung der Wurzel.
Ich denke, das verwirrende bit ist, verwenden Sie die CurrentPage-Objekt, aber start der Traversierung von oben root-Knoten in Richtung der CurrentPage. Wenn wir denken, unsere Vorfahren in der Menschheit, die wir nicht von Anfang an der Zeit!
InformationsquelleAutor der Antwort cheesey_toastie
Wenn mein Verständnis, der code ist korrekt .AncestorOrSelf(int) gibt die Vorfahren (oder Sie selbst) von einem Knoten auf dem gegebenen Niveau argument.
Entnommen Linien 948 & 956 von https://github.com/umbraco/Umbraco-CMS/blob/6.2.0/src/umbraco.MacroEngines/RazorDynamicNode/DynamicNode.cs
Hoffe ich hab das richtig verstanden und das hilft.
InformationsquelleAutor der Antwort Rich