Giter Site home page Giter Site logo

ui-select's Introduction

AngularJS ui-select Build Status

AngularJS-native version of Select2 and Selectize.

Check examples.

Features

  • 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.

Browser compatibility

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">
  • Add the ui.select module as a dependency: angular.module("myApp", ["ui.select"]);

Bootstrap theme

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";

Bootstrap CDN:

  • <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css">

Configuration:

app.config(function(uiSelectConfig) {
  uiSelectConfig.theme = 'bootstrap';
});

Select2 theme

Bower:

  • bower install select2#~3.4.5
  • <link rel="stylesheet" href="bower_components/select2/select2.css">

cdnjs:

  • <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css">

Configuration:

app.config(function(uiSelectConfig) {
  uiSelectConfig.theme = 'select2';
});

Selectize theme

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";

cdnjs:

  • <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';
});

FAQ

ng-model not working with a simple variable on $scope

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.

ng-bind-html gives me "Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context"

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>

I get "TypeError: Object [...] has no method 'indexOf' at htmlParser"

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>

Development

Prepare your environment

  • Install Node.js and NPM (should come with)
  • Install global dev dependencies: npm install -g bower gulp
  • Install local dev dependencies: npm install && bower install in repository directory

Development Commands

  • gulp to jshint, build and test
  • gulp build to jshint and build
  • gulp test for one-time test with karma (also build and jshint)
  • gulp watch to watch src files to jshin, build and test when changed

Contributing

When issuing a pull request, please exclude changes from the "dist" folder to avoid merge conflicts.

ui-select's People

Contributors

0x-r4bbit avatar amcdnl avatar aputivlskiy avatar brettbatie avatar chelsea avatar dimirc avatar duncanbeevers avatar foxbuchele avatar georeith avatar jimmywarting avatar jmcpeak avatar just-boris avatar justinsa avatar jverghese avatar kentcooper avatar martiansnoop avatar miketierney avatar nateabele avatar perry avatar proloser avatar robinmitra avatar sheerun avatar spobo avatar tkrotoff avatar vitosamson avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.