In der angular documentation for the compile service (starting at line 412) gibt es eine Beschreibung der Transclude-Funktion, die in die Verknüpfungsfunktion einer Direktive übergeben wird.Wie wird "futureParentElement" in der transclude-Funktion einer directive link-Funktion verwendet?
Der relevante Teil lautet:
function([scope], cloneLinkingFn, futureParentElement)
in denen (Leitung 212):
futureParentElement
: definiert den Elternteil zu dem diecloneLinkingFn
die klonierten Elemente hinzugefügt werden.
default:
$element.parent()
resp.$element
fürtransclude:'element'
resp.transclude:true
.nur für transcludes benötigt, die nicht HTML-Elemente dürfen enthalten (zB SVG-Elemente) und wenn die
cloneLinkinFn
übergeben wird, als jene Elemente müssen in besonderer Weise erstellt und geklont, wenn sie sich außerhalb ihrer üblichen definiert sind Behälter (zB wie<svg>
).Siehe auch die
directive.templateNamespace
Eigenschaft.
ich nicht den Punkt der futureParentElement
jedoch zu sehen. Es heißt
definiert das übergeordnete Element, zu dem cloneLinkingFn die geklonten Elemente hinzufügen wird.
Aber Sie tun das in der cloneLinkingFn
sich wie folgt aus:
transclude(scope, function (clone) {
some_element.append(clone);
});
Und Sie nicht die transcluden Funktion ohne zu definieren, die das Klonen Funktion in erster Linie nutzen können.
Was ist die richtige Verwendung/eine Verwendung für futureParentElement
?
So ist es irrelevant für HTML-Inhalt, nicht wahr? – krave
@krave Ich glaube schon: "nur für transcludes benötigt, die nicht html Elemente enthalten dürfen" –