// declare a module
var myApp = this.angular.module('myApp', []);
// declare a controller
myApp.controller('SelectCtrl', function ($scope) {
$scope.myData1 = [{
label: "Book 1",
type: "Kids",
value: 2
}, {
label: "Book 2",
type: "Adult",
value: 3
}, {
label: "Book 3",
type: "Adult",
value: 4
}, {
label: "Book 4",
type: "Kids",
value: 5
}];
$scope.selectedItem1 = null;
$scope.selectedItem2 = null;
$scope.ngFilter = function(obj){
if(obj.type == "Kids"){
return true;
}
return false;
}
});
<!-- stitch this with the module declare in Javascript -->
<body ng-app="myApp">
<div ng-controller="SelectCtrl">
<table>
<tr>
<td>This uses ng-repeat and filter.</td>
</tr>
<tr>
<td> <span>Dropdown 1:</span>
<select ng-model="selectedItem1">
<option value="0">Item 1</option>
<option value="1">Item 2</option>
<option ng-repeat="obj in myData1 | filter:ngFilter" value="{{obj.value}}">{{obj.label}}</option>
</select>
</td>
</tr>
<tr>
<td><span>Selection Result for Dropdown 1:</span>
{{selectedItem1}}</td>
</tr>
<tr>
<td><br/>This uses ng-show.<br/>Will gives problem in IE.</td>
</tr>
<tr>
<td> <span>Dropdown 2:</span>
<select ng-model="selectedItem2">
<option value="0">Item 1</option>
<option value="1">Item 2</option>
<option value="2">Book 1</option>
<option value="3" ng-show="false">Book 2</option>
<option value="4" ng-show="false">Book 3</option>
<option value="5">Book 4</option>
</select>
</td>
</tr>
<tr>
<td><span>Selection Result for Dropdown 2:</span>
{{selectedItem2}}</td>
</tr>
</table>
</div>
</body>
table {
width:100%;
}
tr {
width:100%;
}
td {
width:100%;
text-align:center;
}
button {
width:150px;
}