Ersetzen Sie den html-Code ein element mit dem Inhalt einer externen Vorlage einer Richtlinie sein?
Ich versuche, erstellen Sie eine Richtlinie, die eine Seitenleiste in meiner shell-Seite, die wird sich entsprechend ändern, wenn eine neue route eingeschlagen ist, und füllt sich selbst mit den sub menu-Elemente, die relevant für eine Eltern-route. Ich habe 4 verschiedene Menüs, die externe Vorlagen und ich möchte, dass der Inhalt dieser html-Dateien zu ersetzen, die im Menü der link-Funktion von meinem Richtlinie sieht dies so weit:
link: function(scope, element, attrs, ngModel) {
scope.$on("$routeChangeSuccess", function (event, current, previous) {
element.html('<div ng-include=\'enterprisesMenu.html\'></div>');
});
};
Aber das element wird nicht aktualisiert, aber wenn ich mit inline-templates der Elemente-updates nach, aber da jede Vorlage ist Komplex, die ich lieber nicht haben, dass html-Code in meinem Richtlinie, ich habe auch versucht element.html('<div ng-include src=\'enterprisesMenu.html\'></div>');
Irgendwelche Ideen?
Danke, ja hab ich auch schon gelesen, dass ein bisschen schwierig zu integrieren in Ihre Praxis, obwohl. Was wäre ein kantiger Weg, diese Funktion Ihrer Meinung nach?
InformationsquelleAutor Mohammad Sepahvand | 2013-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
$compile
:element.html($compile('<div ng-include="\'enterprisesMenu.html\'"></div>')(scope));
InformationsquelleAutor AlwaysALearner
Konnten Sie dieses Ergebnis erreichen, indem Sie dynamisch ng-inklusive der gewünschten Vorlage. Zum Beispiel:
HTML:
Controller:
Diese Lösung erfordert keine Richtlinie, nur einen extra-controller. Es kann getan werden, mit der Richtlinie zu, der das obige HTML ist die Vorlage der Richtlinie und der JS-code der controller (keine link-Funktion erforderlich).
Ist es nicht eigentlich egal für diesen Fall, aber ich würde für die Richtlinie. Siehe den letzten Absatz der Antwort; der code ist der gleiche, nur wickeln Sie es in eine Richtlinie Erklärung. In jedem Fall würde ich vermeiden, mit
$compile
da gibt es eine einfachere alternative - dieng-include
(aber das ist eine persönliche Meinung).InformationsquelleAutor Nikos Paraskevopoulos