我知道,如果我像这样传入$event
对象,就可以从ng-click
访问click事件:
<button ng-click="myFunction($event)">Give me the $event</button>
<script>
function myFunction (event) {
typeof event !== "undefined" // true
}
</script>
每次都必须显式地传递$event
,这有点烦人。是否可以将ng-click
设置为在默认情况下以某种方式将其传递给函数?
发布于 2014-08-05 15:39:37
在ng-click
中添加$event
,例如:
<button type="button" ng-click="saveOffer($event)" accesskey="S"></button>
然后将jQuery.Event
传递给回调:
发布于 2014-01-14 05:39:14
正如其他人所说,你实际上不能严格按照你的要求去做。也就是说,所有可用于angular框架的工具实际上也是可用的!这意味着您实际上可以编写自己的元素,并自己提供此功能。我写了一个这样的例子,你可以在下面的图中看到(http://plnkr.co/edit/Qrz9zFjc7Ud6KQoNMEI1)。
其中的关键部分是我定义了一个"clickable“元素(如果你需要老版本的IE支持,就不要这么做)。在代码中,如下所示:
<clickable>
<h1>Hello World!</h1>
</clickable>
然后我定义了一个指令来获取这个可点击的元素,并将其转换成我想要的东西(自动设置我的点击事件):
app.directive('clickable', function() {
return {
transclude: true,
restrict: 'E',
template: '<div ng-transclude ng-click="handleClick($event)"></div>'
};
});
最后,在我的控制器中,我准备好了click事件:
$scope.handleClick = function($event) {
var i = 0;
};
现在,值得一提的是,这段代码硬编码了处理单击事件的方法的名称。如果你想消除这一点,你应该能够为指令提供点击处理程序的名称和"tada“-你有一个元素(或属性),你可以使用它,而且再也不用注入"$event”了。
希望这能有所帮助!
https://stackoverflow.com/questions/21101492
复制相似问题