Diese Frage untersucht, wie man eine Wrapper-AngularJS-Direktive erstellt, die dem Element zusätzliche Direktiven hinzufügt wird angewendet auf. Das Ziel besteht darin, eine Endlosschleife zu vermeiden, wenn versucht wird, die neuen Anweisungen mit $compile hinzuzufügen und dann zu kompilieren.
Die bereitgestellte Lösung verwendet die folgenden Schritte:
Prioritäts- und Terminaleinstellungen:
Anweisungskompilierung:
<code class="javascript">angular.module('app') .directive('commonThings', function ($compile) { return { restrict: 'A', replace: false, terminal: true, priority: 1000, link: function (scope, element, attrs) { element.attr('tooltip', '{{dt()}}'); element.attr('tooltip-placement', 'bottom'); element.removeAttr("common-things"); // Remove the wrapper directive's attribute element.removeAttr("data-common-things"); // Also remove the same attribute with data- prefix $compile(element)(scope); } }; });</code>
Dieser Ansatz bietet eine robuste Lösung für die Einbindung mehrerer Anweisungen aus einer Wrapper-Anweisung und vermeidet gleichzeitig die Möglichkeit von Endlosschleifen. Die Prioritäts- und Terminaleigenschaften sind entscheidend, um das gewünschte Verhalten zu erreichen, und es ist wichtig, das Attribut der Wrapper-Direktive nach der Änderung des Elements zu entfernen, um eine weitere Kompilierung zu verhindern.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Endlosschleifen beim Hinzufügen von Direktiven aus einer Wrapper-Direktive in AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!