directive('mzIconTransform',['$timeout',function ($timeout) {
return {
scope: {
iconSrc1: '@',
iconSrc2: '@',
showFlag: '=',
clickFunc: '&'
},
restrict: 'EA',
replace: true,
transclude: true,
template: '<p><img src="{{iconSrc1}}" class="icon-button" ng-if="!showFlag" id="icon-off" /><img src="{{iconSrc2}}" class="icon-button" ng-if="showFlag" ng-click="clickFunc()" /></p>',
link: function (scope, element, attr) {
var elemChildren = element.children();
element.bind('touchstart', function () {
scope.$apply(function () {
scope.showFlag = true;
});
console.log("touchstart事件触发");
});
element.bind('touchend', function () {
scope.$apply(function () {
scope.showFlag = false;
});
console.log("touchend事件触发");
});
},
};
}] );
La fonction que je veux est qu'après avoir touché l'image, l'image changera en une autre, puis reviendra une fois le toucher terminé, et en même temps appellera la méthode en ng-click, donc je veux ajoutez le premier img sous l'événement p, mais il semble que l'élément enfant ne puisse pas être obtenu dans la fonction de lien. Existe-t-il un moyen d'obtenir l'élément enfant et de lui lier des événements en même temps
element.find('img')[0] Pouvez-vous l'obtenir ?
Modifiez le modèle dans compile
compile:function(iEle,iAttr){
//jquery Récupérez la balise img sous l'élément iEle du modèle
$('img',iEle).attr('someAttr','someValue' );/ /Modifiez un attribut d'élément du modèle, et naturellement vous pouvez modifier ng-click
}
Bonjour, avez-vous résolu ce problème, veuillez le résoudre