0
속성으로 전달할 수 없습니다.
ng-click = "function ($ event)"을 추가하고 $ 이벤트를 컨트롤러 함수에 전달할 수 있지만 지시문 내에서 액세스하려고합니다.
궁극적 인 목적은 컨트롤러가 아닌 지시문 내에서 요소의 stopPropagation() 및/또는 preventDefault()를 사용하는 것입니다.
편집 : 나는 그에 따라
<div ng-app="myApp" ng-controller="MyCtrl">
<button stop-toggle ng-click="testFunction($event)">
click me
</button>
Hello, {{name}}!
</div>
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.testFunction = function($event){
console.log("you can access the event here:", $event);
$event.stopPropagation();
}
}
myApp.directive('stopToggle', function(){
return {
link: function(scope, elem, attrs){
elem.bind('click', function(){
console.log("how do i access the $event here??");
// elem.stopPropagation(); // invalid function
// elem.preventDefault(); // invalid function
})
}
}
});
http://jsfiddle.net/Lvc0u55v/10656/
CSTE 연구진은 내부 함수에 인수()로 이벤트를 전달 코드를 게시 할 예정입니다 @ AnirudhMangalvedhekar 각도에는 on() 메서드가 없습니다. – charlietfl
관련 코드를 표시하십시오. 첫 번째로 발생해야하는 실제 이벤트에 고유하기 때문에 속성에서'$ event'를 단독으로 설정할 수 없습니다. – charlietfl
elem.bind ('click', function() {}은 on ...의 대체물입니다. 범위, 요소 자체 및 요소의 속성에 액세스 할 수 있지만 $ 이벤트 – PenguinSource