2014-10-10 99 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> 

在選擇框的變化顯示我沒有顯示/隱藏的,什麼是錯?

+0

請創建一個小提琴 – 2014-10-10 10:07:15

回答

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 2014-10-10 10:12:50

+0

@ user54879但是我們需要$ watch來更新'isEnabled'的值,或者您可以添加'ng-change'指令來選擇標籤 – sylwester 2014-10-10 10:14:28