Подтвердить что ты не робот

Использование ng-hide или ng-show в поле выбора

Можно ли скрыть опцию выбора окна с помощью директивы ng-hide?

http://jsfiddle.net/cr4UB/

<div ng-app ng-controller="Controller">
    <select ng-model="myDropDown">
          <option value="one">One</option>
          <option value="two" ng-hide="myDropDown=='one'">Two</option>
          <option value="three">Three</option>
    </select>

    {{myDropDown}}
</div>
4b9b3361

Ответ 1

У AngularJS 1.1.5 есть директива ng-if, которая может работать на вас. Проверьте этот скрипт http://jsfiddle.net/cmyworld/bgsVw/

Ответ 2

Я не мог заставить его работать с помощью ng-hide, чтобы проверить значение вашего ng-model (вероятно, какое-то состояние гонки с чтением/записью на ту же модель сразу), однако я придумал рабочий пример функциональных возможностей, которые вы выполняете:

Просмотреть разметку

<div ng-app ng-controller="Controller">
    <select ng-model="selectedOption" ng-options="o for o in options"></select>

    {{selectedOption}}
</div>

контроллер

function Controller ($scope) {
    var initialOptions = ['One', 'Two', 'Three'];

    $scope.options = initialOptions;
    $scope.selectedOption = $scope.options[2]; // pick "Three" by default

    $scope.$watch('selectedOption', function( val ) {
        if( val === 'One' ) {
            $scope.options = ['One', 'Three'];
        } else {
            $scope.options = initialOptions;
        }
    });
}