2016-10-27 2 views
0

Ich versuche, eine Direktive zu machen, die, wenn auf ein beliebiges Eingabeelement angewendet wird, ein Data-ng-Muster hinzufügt. jetzt möchte ich es binden. Ich schaute mich um und fand etwas, aber es funktionierte nicht.Binding dynamisch generierten Winkel Direktive Text auf einem Element

mainModule.directive("telephoneValidation", function ($compile) { 
    return { 
     restrict: "A", 
     replace: true, 
     link: 
      function (scope, element, attrs) { 
       element.attr('data-ng-pattern','^[\(]{0,1}[\+ ]{0,1}[0-9 ]+[\)]{0,1}[0-9\- ]*$/'); 
       $compile(element.contents())(scope); 
       element.removeAttr('telephone-validation').empty(); 
      } 
    }; 
}); 
+0

Was möchten Sie damit archivieren: $ compile (element.contents()) (scope) ;? – eg16

+0

Grundsätzlich innerhalb der Kompilierphase müssen Sie das 'ng-pattern' Attribut hinzufügen und das directory Attribut entfernen. Danach kompiliere Element von Link erneut. Werfen Sie einen Blick auf [diese Antwort] (http://stackoverflow.com/a/31062143/2435473) würde Ihnen helfen. –

+0

@ eg16 Ich versuche, das DOM-Element neu zu kompilieren, um eine 2-Wege-Bindung für das Element zu erreichen, so dass angular das Element beobachtet und entsprechend reagiert. Momentan ist es ein benutzerdefiniertes Attribut. – NavalRishi

Antwort

0

Entschuldigung für meine Dummheit. Ich hatte den Wert des Attributs falsch geschrieben, es fehlte am Anfang ein Schrägstrich. Das Element wird dynamisch mit demselben Code kompiliert.

Ein Weg, um mehr sicher zu sein, ist das Element als Winkelelement wickeln von

angular.element(element) 

verwenden und es dann

compile(angular.element(element))(scope)); 

ich die Lösung gefunden Lesen der Kompilierung Dokumentation here zu kompilieren vorbei

0

Versuchen Sie stattdessen $compile(element)(scope). Verwenden contents() zielt auf die Kinder des Elements, nicht das Element selbst - https://api.jquery.com/contents/

+0

ja. .contents() funktioniert nicht und das tut. Danke für den Vorschlag. – NavalRishi

Verwandte Themen