[英]AngularJS: How to bind ng-click to an SVG image inserted using embed or object element
我想顯示存儲在文件中的SVG圖像,並將angularJs ng-click功能綁定到圖像。
我已經嘗試將ng-click綁定放在object / embed元素標記以及包裝div標記中,但兩者都不起作用。
有誰知道如何做到這一點?
嘗試html:
<object ng-click="clickItem()" data="file.svg"></object>
<embed ng-click="clickItem()" src="file.svg/>
<div ng-click="clickItem()">
<object data="file.svg"></object>
</div>
<div ng-click="clickItem()">
<embed src="file.svg"/>
</div>
加載后得到的html:
<object ng-click="clickItem()" data="file.svg">
#document
xml-stylesheet
<svg ~svg contents....~></svg>
</object>
並且點擊不會在任何列出的案例中注冊。
您可以在所有現代瀏覽器中使用SVG作為常規圖像( http://caniuse.com/svg-img )。
<img ng-click="clickItem()" src="file.svg"/>
看到它在行動: http : //jsfiddle.net/YJKnD/
我已經設法在我們的朋友ng-include
幫助下捕獲點擊事件。 看看下面的代碼:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script>
/**
* Module
*
* Description
*/
var myApp = angular.module('myApp', []);
myApp.directive('clickMe', function(){
// Runs during compile
return {
link: function($scope, element, iAttrs, controller) {
console.log(element);
element.bind('click', function(){
console.log('I\'ve just been clicked!');
})
}
};
});
</script>
</head>
<body>
<span ng-include="'circle1.svg'" click-me></span>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.