搜尋

首頁  >  問答  >  主體

angular.js - angular指令中如何給模板中的子元素綁定事件?

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事件触发");
            });
        },
    };
}] );

我想要的功能是觸摸圖片後,圖片會變成另一張,觸摸結束後又換回來,同時調用ng-click裡面的方法,所以我想要給p下的第一個img添加事件,但是在link函數中好像取不到子元素,有什麼辦法可以取到子元素同時給他綁定事件的嗎

漂亮男人漂亮男人2794 天前681

全部回覆(3)我來回復

  • 滿天的星座

    滿天的星座2017-05-15 17:10:16

    element.find('img')[0]能拿到吧?

    回覆
    0
  • 某草草

    某草草2017-05-15 17:10:16

    在compile中修改範本
    compile:function(iEle,iAttr){
    //jquery 取得範本iEle元素下的img標籤
    $('img',iEle).attr('someAttr','someValue');/ /修改模板某個元素屬性,自然可以修改ng-click
    }

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:10:16

    你好 請問你這個問題解決了嗎 求解

    回覆
    0
  • 取消回覆