2016-03-21 8 views
0

私の顧客ディレクティブで "show event"をキャッチしたいとします(例:ng-show)。Angularjs:カスタムディレクティブで "show event"をキャッチする方法は?

このようなイベントリスナーの作成方法は?聞くイベントの名前は何ですか?

<button ng-click="showMyDirective = !showMyDirective"></button> 
<div my-directive="" ng-show="showMyDirective"></div> 

UPDATE:

ここではonclickイベントのリスナーの2種類の例ディレクティブです。両方の作品。同じアプローチはshow/onshowイベントでは機能しません。

module.directive('myDirective' , function() { 
    return { function (scope , element , attrs) { 

     element.bind('click', function(){ 
      console.log('element.bind click'); 
     }); 

     var div = element[0]; 
     div.onclick = function(e){ 
      console.log('div.onclick'); 
     }; 

    }; // return 
}); // myDirective 

答えて

0

変更ng-click関数を呼び出す:あなたのコントローラで

<button ng-click="toggleMyDirective()"></button> 

、あなたの "イベントリスナー" のコードは、関数に入れ:

$scope.toggleMyDirective = function() { 
    $scope.showMyDirective = !$scope.showMyDirective; 
    ... do other stuff here ... 
} 

編集:あなたのディレクティブの使用aを持っていますコントローラとサービス:

http://joelhooks.com/blog/2014/02/11/lets-make-full-ass-angularjs-directives/

+0

このソリューションは、ディレクティブ以外のコードに依存します。私は、ディレクティブコードに埋め込まれたソリューションを探しています。 –

+0

これはいかがですか? http://stackoverflow.com/questions/33807163/how-to-update-directive-on-state-changes –

+0

回答とリンクをありがとうございます。これまでのところ成功はありません。私が質問を投稿したときに思った以上に難しいようです。 –

関連する問題