AngularJS从指令中获取$event
看起来很简单,但我无法从我的指令中获取$event.当从cb-click调用test时,$event是未定义的,但在指令之外(通过html),它是事件对象.
如果我使用链接功能(不包括在我的小提琴中),我可以获得$event,但我无法在正确的范围内解析/ $eval它. http://jsfiddle.net/langdonx/KgcGY/ <div ng-app="app" ng-controller="x"> <!-- via directive --> <checkbox cb-model="y" cb-click="test($event,b)"></checkbox> <!-- via html --> <div><input id="c2" type="checkbox" ng-model="x" ng-click="test($event,'a')"> <label for="c2">{{x}}</label></div> </div> – var app = angular.module('app',[]); app.directive('checkbox',function ($parse) { return { restrict: 'E',replace: true,scope: { cbModel: '=',cbClick: '&' },template: '<div><input id="c1" type="checkbox" ng-model="cbModel" ng-click="cbClick($event,'a')"> <label for="c1">{{cbModel}}</label></div>' }; }); app.controller('x',function x($scope) { $scope.x = true; $scope.y = true; $scope.test = function (ev,b) { console.log('test called,ev is',ev,'b is',b); return 'xyz'; } });
您需要在指令中使用此语法:
ng-click="cbClick({ev: $event,b:'a'}) 使用此HTML: cb-click="test(ev,b)" Fiddle 从directives page开始,“指令定义对象”部分:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |