如何在AngularJS中检测鼠标事件的目标模型

 King347 发布于 2023-02-09 11:56

我在svg(using ng-switch)中绘制了几个元素并处理它们上的鼠标事件.控制器看起来像这样(有更多类型的元素和更多鼠标事件要处理):

app.controller('MainCtrl', function($scope) {
  $scope.elements = [
    { "type": "circle", "x" : 100, "y" : 200 },
    { "type" : "rect", "x" : 50, "y" : 20 }
    ];

  $scope.mousedown = function(element, $event) {
    $scope.msg = element.type;  
  };
});

在鼠标事件处理程序中,我需要鼠标事件的目标模型.我目前的解决方案是添加ng-mousedown="mousedown(element, $event)"到每个svg元素,这对于越来越多的元素类型来说很烦人.

    
      
        
      
      
        
      
    

有没有办法ng-mousedown只添加到根svg元素并从$event属性中检索单击元素的模型($event.target或者$event.srcElement给我单击的svg元素,如何从中获取模型?).

完整示例:http: //plnkr.co/edit/nfgVSBBaeJ9EFKNjYEJn

1 个回答
  • 是的,您可以使用angular.element(...).scope().p如下:

    标记:

    <svg xmlns="http://www.w3.org/2000/svg" ng-mousedown="mousedown2($event)">
    

    JS:

    $scope.mousedown2 = function($event) {
        console.log(angular.element($event.target).scope().p);
    });
    

    请参见forked plunk:http://plnkr.co/edit/7lGMphla42Chrg3X2NZl

    2023-02-09 12:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有