AngularJS binden klicken statt ng-klicken Sie auf
Ich war auf der Suche auf AngularJs und haben eine Frage, das ist meine Richtlinie:
myApp.directive("enter", function(){
return{
restrict: 'A',
scope:{},
controller: function($scope){
$scope.logSomething=function(somevalue){
console.log(somevalue+" is logged");
}
},
template: '<input type="text" ng-model="myModel">'+
'<div ng-click="logSomething(myModel)">click me</div>'
}
})
Dies funktioniert, aber meine Frage ist, wie kann ich tun die gleiche Sache mit binden klicken statt ng-klicken Sie auf Richtlinie? Nicht, dass es besser ist(vielleicht?), aber für die Neugier
sollte es darunter so etwas wie dieses, aber konnte nicht das große Bild:
function(scope, element, attrs){
element.bind("click", function(){
scope.$apply(attrs.enter);
})
Link:function(scope, element, attrs){ element.bind("click", function(){ scope.$gelten(attrs.enter); })
was ist mit template?
Recht. Sorry. Also element ist nicht, was wir genau wollen. Sie können auf die target-div mit jquery. Nicht ideal. Oder Sie implementieren können, eine weitere Richtlinie über das Ziel-div.
was ist mit template?
Recht. Sorry. Also element ist nicht, was wir genau wollen. Sie können auf die target-div mit jquery. Nicht ideal. Oder Sie implementieren können, eine weitere Richtlinie über das Ziel-div.
InformationsquelleAutor Spring | 2013-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese:
Plunk: http://plnkr.co/edit/RCcrs5?p=preview
Wie es scheint, ist nicht best practice, um so eine andere functonalities zusammen in einer Richtlinie.. auf jeden Fall wird es nicht wiederverwendbar. Sie können versuchen, eine andere syntax, wenn Sie mögen: plnkr.co/Bearbeiten/arbMYg
Wie schlagen sich in den Kommentaren, können Sie auch den Zugriff auf die div in jQuery Art und Weise (zum Beispiel
element.children('div').bind(...)
). Aber das ist eine schlechte Idee, da nur eine einzige Richtlinie hier ist ganz klar die Vermischung von Anliegen.Sie sind beide im gleichen Bereich nur, wenn Sie nicht definieren, den privaten Bereich in Ihre "enter" - Verzeichnis wie diese:
scope:{}
tadamm: plnkr.co/Bearbeiten/7gGjDB?p=Album Vorhören
InformationsquelleAutor Cherniv
Als Sie darauf hingewiesen wird, können Sie einfach
element.bind
:Fiddle
Aber natürlich, in Ihrem Fall, Sie muss verwenden
ngClick
statt.Diese Richtlinie ist ein "subdirective", die ersetzt nur die
div
in der Richtlinie, die Sie gezeigt haben. Cherniv gegeben hat, ein vollständigeres Beispiel. Müssen SiengClick
denn dies ist eine grundlegende Funktion von AngularJS. Es gibt keinen Punkt beim versuchen zu implementieren eines bereits existierenden Funktionalität.InformationsquelleAutor Blackhole