1

Wenn ich eine link Funktion für meinen Winkel Richtlinie definieren, was ist der beste Weg, um ein bestimmtes Element innerhalb der Richtlinie zu wählen? Zum Beispiel, wenn dieser url meiner Vorlage ist:Wie wähle ich ein Element in einer Direktive richtig aus?

<div> 
    <form> 
    <input></input> 
    </form> 
</div> 

und ich mag die input wählen, was ist der beste Weg, einen Verweis auf den input-Tag in meiner Link-Funktion zu bekommen?

Meine ersten Gedanken war es, ein id Attribut auf dem input Tag und wählen Sie basierend darauf, aber da dies eine Direktive ist ich nicht unbedingt wissen, wo es verwendet wird, also welche ID ich wähle kann nicht eindeutig sein.

+0

ich das beste für die Richtlinie ein Attribut erstellen und dynamisch an die Steuerung assoziieren würde glauben verwenden können, die Sie wollen. Auf diese Weise würden Sie immer das Feld kennen, mit dem Sie es zu tun haben. –

+0

@ HugoS.Mendes Wenn ich dich richtig verstehe, denke ich nicht, dass das eine gute Idee ist. Dies ist ein internes Implementierungsdetail, das den Benutzer der Richtlinie nicht betreffen sollte. Wer das nutzt, wird sich nicht darum kümmern, welches interne Element ausgewählt wird oder wie. –

+0

hmm .. macht Sinn: o –

Antwort

4

Der beste Weg ist es, das Winkelelement-Objekt zu verwenden, hat es in jqlite Funktionen eingebaut, und für ein nicht eindeutiges Element oder etwas jQlite nicht, dass Sie immer unterstützt den reinen DOM erhalten und verwendet querySelector ej:

app.directive("directiveName",function() 
{ 
    return{ 
    template : "<div><span class='aclass'><button>hi</button></span></div>", 
    link (scope, ele, attr){ 
     var a = ele.find('button'); 
     console.log(a); 
     var b= ele[0].querySelector('.aclass') //element[0] for the DOM 
     console.log(b); 
    } 
    }; 
}); 

hier ist eine Liste von jqlite Funktionen, die Sie mit dem Element Objekt https://docs.angularjs.org/api/ng/function/angular.element