2017-06-07 49 views
0

HTML:將jquery函數轉換爲angular?

<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> 

這將觸發類set-time您的div被點擊並刪除所有其他元素的類錨時。

+0

謝謝,但這不適用於我的問題的第二部分 - 從ng-repeat中的所有其他*主元素的父元素中刪除類 – Rory

+0

請參閱已編輯答案 – devqon

+0

謝謝,效果很好! – Rory