1

我想在用戶點擊圖標時顯示一個下拉菜單。我使用ng-show,但它不顯示下拉菜單選項。爲什麼ng-show在角度上不能正確工作?

  • 我做了一個圖標... .on點擊我嘗試用ng-show打開下拉菜單,但它沒有顯示爲什麼?

這裏是我的代碼

http://codepen.io/naveennsit/pen/pbPJEN

$scope.showDropDown=function(e){ 
    alert('show drop down'); 
    $scope.showDropDown=true; 
    e.stopPropagation(); 
    } 

HTML

<ul class="dropdown-menu" ng-show='showDropDown'> 
        <li><a href="#">Edit</a></li> 
        <li><a href="#">Delete</a></li> 

       </ul> 
+0

如果你想有一個切換效果,@AsimKT的解決方案是好的。我也建議你檢查角度帶,這是一個美妙的角度bootstrap實施。你根本不需要編寫這樣的邏輯。 – stanleyxu2005

+1

我建議你爲ng-click和ng-show提供不同的名稱。這將是非常混亂。 –

回答

3

你應該調用操作設置在NG-點擊$scope.showDropDown。即使用一個函數來設置值。

JS

$scope.showDropDownFunction = function(e){ 
    alert('show drop down'); 
    $scope.showDropDown=true; 
    // as stanleyxu2005 said if you want a toggle effect (hide/show) 
    // menu on each click, use 
    //$scope.showDropDown= !$scope.showDropDown; 
    //instead 
    e.stopPropagation(); 
    } 

HTML

<button ng-click='showDropDownFunction()'> show menu </button> 
<ul class="dropdown-menu" ng-show='showDropDown'> 
    <li><a href="#">Edit</a></li> 
    <li><a href="#">Delete</a></li> 
</ul> 

所以這裏發生了什麼是我們展示了UL按鈕點擊時。

請參閱文檔:https://docs.angularjs.org/api/ng/directive/ngShow PS:簽出最後一個示例。

+0

一旦'showDropDown'爲'true',它將永遠不會重置爲'false'。你確定這會工作嗎? – stanleyxu2005

+0

問題的作者想知道爲什麼ng-show沒有工作。我試圖保存原始代碼。否則'$ scope.showDropDown =!$ scope.showDropDown;'將很好地切換菜單的可見性。我編輯了答案。 :) –

+0

你可以請創建jsfiddle或plunker。下拉菜單根本不可見 – brk

0

不需要聲明函數

<button ng-click="showDropDown=true" >Show Drop Down</button> 
<ul class="dropdown-menu" ng-show="showDropDown"> 
    <li><a href="#">Edit</a></li> 
    <li><a href="#">Delete</a></li> 
</ul> 
相關問題