当我们在编译阶段尝试向元素添加 ng-click 功能(链接到控制器操作)时,它不起作用。
如果它在链接函数中,我们可以让它工作,但是由于我们需要一个编译函数,所以不调用链接。
任何人都可以帮忙吗?
HTML:
<div ng-app="editApp" ng-controller="podCtrl">
<a href="" data-model="image" data-cms-link-pod>
<img />
</a>
</div>
JS:
var module = angular.module('editApp', []);
module.directive('cmsLinkPod', function () {
return {
restrict: 'A',
scope: {
pod: '=model',
},
controller: function ($scope) {
$scope.ohai = function () {
console.log('click triggered')
event.preventDefault();
};
},
compile: function (element, attrs, transclude) {
element.find('img').attr('ng-src', '{{pod.src}}');
element.attr('data-ng-click', 'ohai()');
}
};
});
module.controller('podCtrl', ['$scope', function($scope) {
$scope.image = {
src: 'http://placekitten.com/100/100'
}
}]);
看到这个jsfiddle