Angular-Chosen is an angular directive that can be used to convert select boxes to a more user-friendly chosen drop downs.
Standard Select
Turns this
Code:
<select ng-model="data.country"
  ng-options="country.code as country.name
      for country in countries">
</select>
 Into this
<select chosen
    option="countries"
  ng-model="data.country"
  ng-options="country.code as country.name
      for country in countries">
</select>Multiple Select
Turns this
Code:
<select multiple ng-model="data.country"
  ng-options="country.code as country.name
      for country in countries">
</select>
 Into this
<select chosen multiple
    options="countries"
  ng-model="data.country"
  ng-options="country.code as country.name
      for country in countries">
</select>How to use:
Include jQuery in your html
<!-- include the js -->
<script src="path/to/jquery.min.js"></script>Include Chosen in your html file
<!-- include the js -->
<script src="path/to/chosen-library/chosen.min.js"></script>
<!-- include the css and sprite -->
<link rel="stylesheet" href="path/to/chosen-library/chosen.min.css">
<link rel="image_src" href="path/to/chosen-library/chosen-sprite.png">
<!-- include angular -->
<script src="path/to/angular/angular.min.js"></script>
<!-- include angular-chosen -->
<script src="path/to/angular-chosen.js"></script>
You can also use a CDN, for example
<!-- include the js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.jquery.min.js"></script>
<!-- include the css and sprite -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.min.css">
<link rel="image_src" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen-sprite.png">
<!-- include angular -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<!-- include angular-chosen -->
<script src="path/to/angular-chosen.js"></script>Add angular.chosen as a dependency in your angular projects module
angular.module('yourModule', ['angular.chosen']);That's it you're good to go !!
Options:
- 
                model: the property in the scope to which the drop downs value is binded to. Same as ng-model 
- 
                options: the list of options the drop-down will have. Same as the array/object passed in ng-options 
- 
                max-selection: Used to set the chosen option max_selected_options for multiple select. 
- 
                search-threshold: Used to set the chosen option disable_search_threshold. 
Events:
- 
                onChange: 'on-change'The on-change attribute will execute the function assigned to it when the chosen fires the 'change' event. <select chosen options="countries" on-change="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>
- 
                onReady: on-readyThe on-ready attribute will execute the function assigned to it when the chosen fires the 'chosen:ready' event. <select chosen options="countries" on-ready="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>
- 
                onMaxSelected: on-max-selectedThe on-max-selected attribute will execute the function assigned to it when the chosen fires the 'chosen:maxselected' event. <select chosen multiple options="countries" max-selection="3" on-max-selected="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>Example:You cannot add more countries to the list 
- 
                onShowDropdown: on-show-dropdownThe on-show-dropdown attribute will execute the function assigned to it when the chosen fires the 'chosen:showing_dropdown' event. <select chosen options="countries" on-show-dropdown="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>Example:Drop down was opened. 
- 
                onHideDropdown: on-hide-dropdownThe on-hide-dropdown attribute will execute the function assigned to it when the chosen fires the 'chosen:hiding_dropdown' event. <select chosen options="countries" on-hide-dropdown="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>Example:Drop down was closed. 
- 
                onNoResult: on-no-resultThe on-no-result attribute will execute the function assigned to it when the chosen fires the 'chosen:no_results' event. <select chosen options="countries" on-no-result="doStuff" ng-model="data.country" ng-options="country.code as country.name for country in countries"> </select>