2014-11-21 5 views
1

Прежде всего, позвольте мне поблагодарить вас за то, что вы нашли время, чтобы прочитать это, и я сожалею, что не вставлял свой код, работа, которую я делаю, находится на сервере, который не работает У вас есть интернет-соединение. Я думаю, что я могу объяснить, что я прошу, и, возможно, напечатать какой-нибудь псевдо-код достаточно хорошо, чтобы понять мою точку зрения.изменить параметры выпадающего меню на основе ng-grid 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] .color

Когда selectedItem [0] .color == "BLUE" Мне бы хотелось показать только GREEN и YELLOW. . и т. д., если цвет = «ЗЕЛЕНЫЙ», тогда в параметрах появляются только СИНИЙ и ЖЕЛТЫЙ.

Как это сделать? Есть ли другой контроллер ng, который может быть запущен, когда выбраноItem [0] определено, что вызывает функцию?

ответ

1

На самом деле, я не мог получить фильтр ng или фильтр в целом, потому что ... ну, все примеры, которые я нашел, отфильтровали список против какого-либо текста, включая элементы, которые частично совпадали или полностью соответствовали тексту. В этом случае мне нужно, чтобы ИСКЛЮЧИТЬ точные совпадения. Предложение ng-фильтра направило меня в правильном направлении и, в конце концов, через некоторое время я придумал следующее решение, которое работает и не мешает никаким другим операциям в теге. Это кажется немного klugey мне так, если есть лучшее решение, которое включает нг-фильтр, пожалуйста, просветить меня

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; 
} 
Смежные вопросы