Hallo da habe ich diese "confirmable" Taste Richtlinie, die ich auf,angular.js: Wie übergibt man ngclick vom ursprünglichen dom an dom?
Den HTML-Code arbeite, die die Richtlinie 'confirmable'
<span confirmable ng-click='users.splice($index,1)'></span>
die Richtlinie auslösen: (Coffee)
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
Also das Endergebnis ich möchte mit dieser Richtlinie erzeugt, um zu sehen ist
<button class='btn btn-mini btn-danger' ng-click='users.splice($index,1)'>
Destroy
</button>
Bisher habe ich es mit einer Verbindungsfunktion in der Richtlinie
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
link: (scope, el, attrs) -> <---------- linking function
$(el).attr 'ng-click', attrs.ngClick
Aber ich habe durch die Richtlinie Dokumentation zur Arbeit wieder weg und fand den Umfang Eigenschaft mit den =, @, & Betreibern aber ich bin mir wirklich unsicher, ob sie das sind, was ich brauche. Dann gibt es diese Eigenschaften, die ich noch verstehen muss, aber im Moment scheint es auch nicht hilfreich zu sein. Also, während meine Link-Funktion für den Moment den Trick macht, aber ich dachte, ich sollte fragen, ob eckig eine elegantere Lösung bietet.
Danke!
ich, das ist sehr nützlich, sehen, zu Funktionen herum wie dies passieren wird. Nur neugierig, können Sie Argumente an foo() übergeben? und wie wird es auf die Richtlinie übertragen? –
Ja, Sie können Argumente übergeben. Im Allgemeinen "tröpfeln" die Dinge von der Direktive zu den Eltern, nicht umgekehrt. Wenn Sie vor dem Aufrufen des Verweises auf die Funktion des Elternteils etwas für die Direktive ausführen wollten, dann würden Sie diesen Aufruf einfach in eine andere Bereichsfunktion in der Controller-Deklaration der Direktive einfügen. –
Hmm. Ist es nicht empfehlenswert, 'ng-click' erneut zu verwenden, da es so allgemein bekannt ist? Es funktioniert in Ihrem Beispiel, aber wenn Sie die 'replace: true'-Option für Ihre Anweisung verwenden, bricht sie ab. Ich habe keine Idee warum. = [ – Langdon