// 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; }