AngularJS-native version of Select2 and Selectize.
Check examples.
- Search and select
- Available themes: Bootstrap, Select2 and Selectize
- Keyboard support
- jQuery not required (except for old browsers)
- Small code base: 400 lines of JavaScript vs 20 KB for select2.min.js
For the roadmap, check issue #3 and the Wiki page.
Starting from Internet Explorer 8 and Firefox 3.6 included.
Installation using Bower
bower install angular-ui-select- Inside your HTML add
- select.js:
<script src="bower_components/angular-ui-select/dist/select.min.js"></script> - select.css:
<link rel="stylesheet" href="bower_components/angular-ui-select/dist/select.min.css">
- select.js:
- Add the
ui.selectmodule as a dependency:angular.module("myApp", ["ui.select"]);
If you already use Bootstrap, this theme will save you a lot of CSS code compared to the Select2 and Selectize themes.
Bower:
bower install bootstrap<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">- Or the LESS version:
@import "bower_components/bootstrap/less/bootstrap.less";
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css">
Configuration:
app.config(function(uiSelectConfig) {
uiSelectConfig.theme = 'bootstrap';
});Bower:
bower install select2#~3.4.5<link rel="stylesheet" href="bower_components/select2/select2.css">
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css">
Configuration:
app.config(function(uiSelectConfig) {
uiSelectConfig.theme = 'select2';
});Bower:
bower install selectize#~0.8.5<link rel="stylesheet" href="bower_components/selectize/dist/css/selectize.default.css">- Or the LESS version:
@import "bower_components/selectize/dist/less/selectize.default.less";
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.default.css">
Configuration:
app.config(function(uiSelectConfig) {
uiSelectConfig.theme = 'selectize';
});You cannot write:
<ui-select ng-model="item"> <!-- Wrong -->
[...]
</ui-select>You need to write:
<ui-select ng-model="item.selected"> <!-- Correct -->
[...]
</ui-select>Or:
<ui-select ng-model="$parent.item"> <!-- Hack -->
[...]
</ui-select>For more explanations, check ui-select #18 and angular.js #6199.
You need to use module ngSanitize (recommended) or $sce:
$scope.trustAsHtml = function(value) {
return $sce.trustAsHtml(value);
};<div ng-bind-html="trustAsHtml((item | highlight: $select.search))"></div>You are using ng-bind-html with a number:
<div ng-bind-html="person.age | highlight: $select.search"></div>You should write instead:
<div ng-bind-html="''+person.age | highlight: $select.search"></div>Or:
<div ng-bind-html="person.age.toString() | highlight: $select.search"></div>- Install Node.js and NPM (should come with)
- Install global dev dependencies:
npm install -g bower gulp - Install local dev dependencies:
npm install && bower installin repository directory
gulpto jshint, build and testgulp buildto jshint and buildgulp testfor one-time test with karma (also build and jshint)gulp watchto watch src files to jshin, build and test when changed
- Run the tests
- Try the examples
When issuing a pull request, please exclude changes from the "dist" folder to avoid merge conflicts.