Ich habe ein Angularjs-Verzeichnis für einen Inline-Editor erstellt. Die HTML-Vorlage wird mithilfe von Funktionen erstellt und mit dem HTML-Wurzelelement kompiliert. Mein Problem ist, dass ich eine Statusvariable ändern möchte, wenn ich auf ein Element klicke, um das Umschalten zu erreichen, aber es scheint nicht zu funktionieren.AngularJS ng-click funktioniert nicht innerhalb der Direktive für dynamische Vorlagen
Ich habe die Code-Schnipsel als Referenz enthalten, die in eine Direktive Link-Funktion geschrieben wird.
var appendTotemplate = function() {
var uploadMediaName = "hello";
var MediaNameEditable = false;
template = "<a ng-if='MediaNameEditable !=true' ng-click='MediaNameEditable=true'" + uploadMediaName + "</a>" +
"<input ng-if='MediaNameEditable==true' type='text' value='" + uploadMediaName + "' id='mediatxt' ng-click='MediaNameEditable=false;' >";
var linkFn = $compile(template);
var content = linkFn(scope);
element.append(content);
}();
Bitte überprüfen Sie den Code. Ich möchte das wirklich umsetzen. Danke im Voraus!
Es .thanks arbeitet zu wechseln !!! – abhilash
Gibt es Möglichkeiten, auf die Bereichsvariable in dieser Vorlage zuzugreifen? Ich möchte diese lokalen Variablen (uploadMediaName, MediaNameEditable) ändern und aus dem Bereich der Direktive nehmen. Ich habe etwas versucht, aber es scheint nicht in der Vorlage zu funktionieren. Aber ich erhalte den Wert, den ich überprüft habe, indem ich den Alarmdialog benutze. – abhilash
Binden Sie es auch in den Bereich und verwenden Sie in der Vorlage scope.uploadMediaName = "Hallo". Dies ist so, weil Sie es mit dem Geltungsbereich (linkFn (scope) tun, also während des Kompilierens versuchen, die in der Vorlage verwendeten Variablen zu finden, wenn sie im Geltungsbereich vorhanden sind. – Bettimms