2014-11-21 40 views
1

首先,我要說感謝您抽出時間來閱讀這一點,我很抱歉,沒有粘貼我的代碼,我做的工作是,沒有按一個服務器上沒有互聯網連接。我想我可以解釋我所要求的內容,也許可以輸出一些僞代碼,足以說明我的觀點。化妝下拉選項更改基於NG-電網將selectedItem [0]

我有一個角度控制器的HTML頁面。 HTML頁面使用ng-grid顯示錶示數據庫中行的項目列表。當在列表中的項目選擇下視顯示器的下降,並且下拉被自動提交

ng-change="processOptions(dropdown_options)" 

選定的是在控制範圍內的部分:根據選定的

$scope.selectedItem=[]; 

下拉顯示網格中的項目被很好地選中。

ng-show="selectedItem[0]" 

下拉選項在控制器定義爲:

$scope.dropdownOptions = [ 
    {label: "Option Blue", value: "BLUE"},   
    {label: "Option Green", value: "GREEN"}, 
    {label: "Option Yellow", value: "YELLOW"}, 
]; 

上述運作良好。現在我想要做的是使選項有條件的時候在selectedItem [0]中看到一個值。我只想要GREEN和YELLOW選項來顯示selectedItem [0] .color ==「BLUE」。等等,如果color =「GREEN」,那麼只有BLUE和YELLOW出現在選項中。

我該如何做到這一點?當定義了調用函數的selectedItem [0]時,是否還有另一個ng控制器可以觸發?

回答

1

其實,我不能讓NG-過濾器或過濾一般,因爲工作..以及所有我發現過濾列表對一些文本..包括部分匹配或完全匹配的文本項目的例子。在這種情況下,我需要它排除完全匹配。 ng-filter建議讓我朝着正確的方向前進,不久之後,我想出了以下解決方案,它可以工作,並且不會干擾標籤中的任何其他操作。這似乎有點klugey我,所以如果有一個更好的解決方案,它涉及到NG-過濾請填寫我

ng-options="opt.label for opt in filterOptions()" 

然後在控制器:

$scope.filterOptions = function() { 
    if ($scope.selectedItem[0]) { 
     if ($scope.selectedItem[0].color === "GREEN") { 
      $scope.dropdownOptions = [      
       {label: "Option Blue", value: "BLUE"},  
       {label: "Option Yellow", value: "YELLOW"} 
      ] 
     } 
     else if .....and so on { 

     } 
    } 
    return $scope.dropdownOptions; 
}