2016-09-16 10 views
0

うまくいけば、これは私の脳が死んでいると思うほど簡単ですが、これをオンラインでやっている人はいません。ここAngular JSイベントのSend要素

<div class="item" ng-repeat="group in groups"> 
     <ion-item class="item-stable" 
       ng-click="toggleGroup(group)" 
       ng-class="{active: isGroupShown(group)}"> 
      <i class="icon" ng-class="isGroupShown(group) ? 'ion-minus' : 'ion-plus'"></i> 
     &nbsp; 
     Group {{group.name}} 
     </ion-item> 
     <ion-item class="item-accordion" 
       ng-repeat="item in group.items" 
       ng-show="isGroupShown(group)"> 
     {{item}} 
     </ion-item> 
    </div> 

例:私は "グループ" を持ってしたくない場合を除きhttps://codepen.io/anon/pen/ORXWkp

。一番上にdivが1つしかないので、divをisGroupShown()メソッドで送信する方法が必要です。

私はこれらのメソッドを他の場所で再利用したいので、要素を取得してそのように変更することは望ましくありません。すなわち:

var multibutton = angular.element(element.getElementsByClassName("multi-files")); 

であり、次にisGroupShown()メソッドでマルチボタンを使用します。

編集:基本的に、私はこれらの機能が実行されるときの親divを知りたいと思います。

+0

'$ event'オブジェクトを使ってクリックのターゲット要素を取得できますが、それはそれです。親divを取得するためのユースケースは何ですか?まれに、まったく同じようなものが必要になることはまずありません。なぜそれが簡単ではないのかを説明します。 – tcooc

答えて

0

1)多分あなたは

var multibutton = angular.element(element.getElementsByClassName("multi-files")[0]); 

の代わりに使用したい:getElement ByClassNameがgetElementById

2に比べて、配列を返すため

var multibutton = angular.element(element.getElementsByClassName("multi-files")); 

を)多分問題がありますローカル変数を宣言します。 var
var multibutton = ...
multibutton =.....
を削除して、その機能の外で再利用することができます。

+0

さて、いいえ、最後の部分を追加して、誰かがマルチボタンを行い、次にisGroupShownメソッドでマルチボタンを参照するように答えるのを防ぐようにしました。それは機能しますが、私はこの機能を再利用できません。 – user1427105

+0

@ user1427105私は答えを更新し、2番目のソリューションを追加しました。それはうまくいくかもしれない。 –

関連する問題