最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - AngularJS and SVG--using ng-click on a <rect> element? - Stack Overflow

matteradmin10PV0评论

Problem: I want to run the test function when I click on a <path> element in an SVG graphic. Right now nothing happens when I click the element. HOWEVER--when I replace ng-click with onclick="alert('success')" the alert works fine. Any suggestions?

In my code...

section of my html...

<div ng-controller="converter">
  <embed src="/image.svg">
  <!--This button successfully runs the test function-->
  <button ng-click="test()">Test</button>
</div>

my app.js...

var app = angular.module('app', []);

app.controller('converter', ['$scope', '$http', function($scope, $http){
    $scope.test = function(){
        console.log("this click event is working");
    }
}]);

part of my embedded SVG file...

<rect id="e1-1-2" data-name="e1-1" class="cls-35" x="14" y="106" width="57" height="22" ng-click="test()"/>

(Here's the full code, for those interested: )

Problem: I want to run the test function when I click on a <path> element in an SVG graphic. Right now nothing happens when I click the element. HOWEVER--when I replace ng-click with onclick="alert('success')" the alert works fine. Any suggestions?

In my code...

section of my html...

<div ng-controller="converter">
  <embed src="/image.svg">
  <!--This button successfully runs the test function-->
  <button ng-click="test()">Test</button>
</div>

my app.js...

var app = angular.module('app', []);

app.controller('converter', ['$scope', '$http', function($scope, $http){
    $scope.test = function(){
        console.log("this click event is working");
    }
}]);

part of my embedded SVG file...

<rect id="e1-1-2" data-name="e1-1" class="cls-35" x="14" y="106" width="57" height="22" ng-click="test()"/>

(Here's the full code, for those interested: https://github./cwklausing/angular_guitar)

Share Improve this question edited Jan 3, 2016 at 8:19 Mr Lister 46.6k15 gold badges113 silver badges155 bronze badges asked Dec 27, 2015 at 8:05 cron.dogcron.dog 1853 silver badges10 bronze badges 6
  • You added ng-click in rect element & button element – ARIF MAHMUD RANA Commented Dec 27, 2015 at 8:12
  • @ARIFMAHMUDRANA, and what is wrong? – Grundy Commented Dec 27, 2015 at 8:13
  • try insert svg directly, instead with using embed – Grundy Commented Dec 27, 2015 at 8:14
  • @Grundy it's nothing wrong but my question is will it be ng-click in both element? – ARIF MAHMUD RANA Commented Dec 27, 2015 at 8:14
  • 1 @ARIFMAHMUDRANA: The button is just a test to make sure there isn't a problem with the angular. It's non-essential to the problem. – cron.dog Commented Dec 27, 2015 at 8:16
 |  Show 1 more ment

1 Answer 1

Reset to default 4

Wrap it inside a svg

<svg width="400" height="110">
  <rect width="300" height="100" style="fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)" ng-click="test()" />
</svg>

Here is the working Plunker

Post a comment

comment list (0)

  1. No comments so far