2014-10-10 7 views
1

Я хочу показать/скрыть контент на основе определенного значения, выбранного в раскрывающемся списке, но его не работает.показать/скрыть контент на основе значения выбора

$scope.list = { 
    'val1': 'abc', 
    'val2': 'xyz' 
}; 
$scope.selectedVal = 'val1' 
$scope.isEnabled = $scope.selectedVal == 'val1' ? true : false; 

HTML код

<select ng-model="selectedVal" ng-options="k as v for (k,v) in list"></select> 
<div ng-if="isEnabled"> 
    <span>Show Me</span> 
</div> 

Об изменении переключателе Show Me не показан/скрыт, что не так?

+0

заведите скрипку –

ответ

3

var app = angular.module('app', []); 
 

 
app.controller('fCtrl', function($scope) { 
 
    $scope.list = { 
 
    'val1': 'abc', 
 
    'val2': 'xyz' 
 
    }; 
 
    $scope.selectedVal = 'val1' 
 

 
    $scope.$watch('selectedVal', function() { 
 
    $scope.isEnabled = $scope.selectedVal == 'val1' ? true : false; 
 
    }); 
 

 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app"> 
 
    <div ng-controller="fCtrl"> 
 

 
    <select ng-model="selectedVal" ng-options="k as v for (k,v) in list"></select> 
 

 

 
    <div ng-if="isEnabled"> 
 
     <span>Show Me</span> 
 
    </div>

+0

почему мы должны смотреть? это не автосвязь selectedVal и isEnabled? – FarazShuja

+0

@ user54879, но нам нужно $ watch для обновления значения 'isEnabled' или вы можете добавить директиву' ng-change', чтобы выбрать тег – sylwester

Смежные вопросы