2017-06-07 4 views
0

HTML:jquery関数を角に変換しますか?

<div class="day-row" ng-repeat="(a, b) in $ctrl.myModel"> 
    <div class="col-lg"> 
     <a href="#" class="my-btn" aria-hidden="true" ng-click="$ctrl.toggleTimepickerPopup($event)"></a> 
     <div class="the-container"> 

LESS:

  &.set-time { 
      .timepicker-container { 
       display: block; 
      } 
      } 

JavaScriptは:

jquery(".my-btn").each(function() { 
     if (jquery(this).is(jquery(event.target))) { 
      jquery(this).parent().toggleClass('set-time'); 
     } else { 
      jquery(this).parent().removeClass('set-time'); 
     } 
    }); 
    event.preventDefault(); 

このjqueryの関数は がクリックされたことをリンクのクラスを切り替え、そしてすべてのクラスを削除しますng-repeatの他のリンク。

可能であれば、これを角度に変換したいと思います。私は同様の質問Toggle class of parent element using ng-click?選択された答えが働いたが、今は親要素のクラスを切り替えるだけでなく、すべての兄弟要素の親からクラスを削除するために、それを拡張する必要があります。

答えて

1

bと仮定すると、あなたのオブジェクトである、あなたはこのような何かを行うことができます。アンカーをクリックし、他のすべての要素にクラスを削除したとき

<div class="day-row" 
    ng-repeat="(a, b) in $ctrl.myModel"> 
    <div class="col-lg" 
      ng-class="{ 'set-time': $ctrl.selected === b }"> 
     <a href="#" class="my-btn" aria-hidden="true" 
      ng-click="$ctrl.selected = b"></a> 

これはあなたのdivにクラスset-timeを切り替えます。

+0

おかげで、これは私の質問の第二部では動作しません - ngのリピート – Rory

+0

でアンカー要素のすべての*他*親要素からクラスを削除するには – devqon

+0

おかげで編集した答えを参照してください、素晴らしい作品! – Rory

関連する問題