我想更改下拉菜单取决于复选框。因此,如果选中复选框,则仅显示特定项目。
<script>
angular.module('selectExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.colors=[
{id:1, name:'black'},
{id:2, name:'red'},
{id:3, name:'white'},
]
$scope.myColor = $scope.colors[2]; // red
$scope.isFlagOn = false;
function showFlag(){
if ($scope.isFlagOn){
return [$scope.colors.find(s => s.name === $scope.myColor)];
}
else{
return $scope.colors
}
}
}]);
</script>
<div ng-controller="ExampleController">
<label>
isFlagOn <input type="checkbox" ng-model="$scope.isFlagOn">
</label>
<br/><br/>
<select ng-model="myColor" ng-options="color as color.name for color in $scope.showFlag() track by color.id">
<option value="">Choose one</option>
</select><br/><br/>
</div>
若复选框被选中,我只想在这里显示红色选项。是否可以使用“ng选项”?
谢谢
1条答案
按热度按时间iyr7buue1#
还有一种方法。您可以使用以下选项筛选ng选项:
也,
$scope
绑定到html-其中的每个变量都会自动$scope
因此,在html中不使用它,只在js(例如控制器)中使用它。