Wie werden Direktiven aufgerufen? Wenn ein Element, das eine Direktive enthält, dynamisch über eine Winkelsteuerung hinzugefügt wird?

Nach einiger Suche habe ich in dieser schlechten Praxis nicht viele Informationen gefunden. Nehmen wir an, ich habe einen Controller, der sich so verhält (ich weiß, dass es eine Direktive sein sollte und dass wir in Controllern niemals DOM-Manipulationen durchführen, aber ich bin neugierig).

angular.module('app').controller('test', ['$scope',
    function($scope) {
        $scope.addElement = function() {

            var input = document.createElement('input');
            input.type = "text";
            //directive
            input.setAttribute("autosize","autosize");
            input.setAttribute("ng-model","dummy");
            //[ append code ]
            input.focus();



        }
    }
]);

und nehmen wir an, dass ich eine Schaltfläche habe, die addElement () mit ng-click auslöst. Wie die bestehende Autosize-Direktive "ausgelöst" wird, um tatsächlich zu funktionieren. Im Gegensatz dazu funktionieren Eingabeelemente, die bereits vorhanden sind und die Direktive autosize haben, einwandfrei. Ich habe auch versucht, $ scope.apply (function () {}); um den eingerückten Code, der das Eingabeelement erstellt und TypeError verursacht: undefined ist keine Funktion: /

Antworten auf die Frage(1)

Ihre Antwort auf die Frage