2017-02-14 49 views
0

我使用引導庫,當我單擊下拉切換類時,將按預期顯示/隱藏下拉列表(因此稱爲切換)。在Angular應用程序中使用下拉切換引導問題

如果我點擊HTML代碼片段底部的圖片,這將激活在javascript代碼中找到的ng-click角度指令。

此代碼只是通過檢查是否顯示下拉菜單來檢查是否顯示.dropdown類具有'open'類。如果不是,那麼它會打開在新窗口中傳遞的url,否則它將刪除隱藏下拉菜單的'open'類。

我遇到的問題是,如果我嘗試點擊相同的.dropdown類再次激活下拉菜單,它只會在我再次單擊兩次後纔會出現?

我顯然不是通過刪除'open'類來破壞下拉菜單的正確方法嗎?任何人都可以提出我做錯了什麼?如果我不點擊圖片(因此不激活ng-click這一切都可以正常工作),所以問題與doInteractionBodyEvent()有關,並且不知何故我不能正確地「銷燬」下拉列表。

// HTML

<div class="dropdown-toggle" type="button" id="dropdown1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 
    <span class="material-icons">more_vert</span> 
</div> 

<div> 
    <div ng-if="interaction.media[0].image" class="image"> 
     <a ng-click="doInteractionBodyEvent(interaction.media[0].href)"> 
     <img ng-src="{{interaction.media[0].image.replace('amp;','')}}" /> 
     </a> 
    </div> 
</div> 

//使用Javascript角控制器

$scope.doInteractionBodyEvent = function(url) { 
    if (angular.element('.dropdown').hasClass('open')) { 
     angular.element('.dropdown').removeClass('open'); 

    } else { 
     $window.open(url, '_blank'); 
    } 
} 
+0

「下拉菜單」 當你點擊鏈接,你不需要添加類.open嗎? – Mark

+0

你試過'angular.element('。dropdown')。dropdown('toggle');'? – Jag

回答

0

刪除數據切換=從HTML

<div class="dropdown-toggle" type="button" id="dropdown1" aria-haspopup="true" aria-expanded="true"> 
    <span class="material-icons">more_vert</span> 
</div>