UNPKG

ui-select

Version:
154 lines (133 loc) 7.71 kB
<!DOCTYPE html> <html lang="en" ng-app="demo"> <head> <meta charset="utf-8"> <title>AngularJS ui-select</title> <!-- IE8 support, see AngularJS Internet Explorer Compatibility https://docs.angularjs.org/guide/ie For Firefox 3.6, you will also need to include jQuery and ECMAScript 5 shim --> <!--[if lt IE 9]> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.2.0/es5-shim.js"></script> <script> document.createElement('ui-select'); document.createElement('ui-select-match'); document.createElement('ui-select-choices'); </script> <![endif]--> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-sanitize.js"></script> <!-- ui-select files --> <script src="./dist/select.js"></script> <link rel="stylesheet" href="./dist/select.css"> <script src="./assets/demo.js"></script> <!-- themes --> <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.default.css"> <!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.bootstrap2.css"> --> <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.bootstrap3.css">--> <style> body { padding: 15px; } .select2 > .select2-choice.ui-select-match { /* Because of the inclusion of Bootstrap */ height: 29px; } .selectize-control > .selectize-dropdown { top: 36px; } /* Some additional styling to demonstrate that append-to-body helps achieve the proper z-index layering. */ .select-box { background: #fff; position: relative; z-index: 1; } .alert-info.positioned { margin-top: 1em; position: relative; z-index: 10000; /* The select2 dropdown has a z-index of 9999 */ } </style> </head> <body class="ng-cloak" ng-controller="DemoCtrl as ctrl"> <button class="btn btn-default btn-xs" ng-click="ctrl.enable()">Enable ui-select</button> <button class="btn btn-default btn-xs" ng-click="ctrl.disable()">Disable ui-select</button> <button class="btn btn-default btn-xs" ng-click="ctrl.clear()">Clear ng-model</button> <h1>Tagging</h1> <p>Tagging allows the creation of new items not present in the item list</p> <h3>Simple String Tags <small>(With Custom Tag Label &amp; Sort Enabled)</small></h3> <ui-select multiple tagging tagging-label="(custom 'new' label)" ng-model="ctrl.multipleDemo.colors" theme="bootstrap" sortable="true" ng-disabled="ctrl.disabled" style="width: 300px;" title="Choose a color"> <ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match> <ui-select-choices repeat="color in ctrl.availableColors | filter:$select.search"> {{color}} </ui-select-choices> </ui-select> <p>Selected: {{ctrl.multipleDemo.colors}}</p> <hr> <h3>Simple String Tags <small>(Predictive Search Model &amp; No Labels)</small></h3> <ui-select multiple tagging tagging-label="false" ng-model="ctrl.multipleDemo.colors2" theme="bootstrap" ng-disabled="ctrl.disabled" style="width: 300px;" title="Choose a color"> <ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match> <ui-select-choices repeat="color in ctrl.availableColors | filter:$select.search"> {{color}} </ui-select-choices> </ui-select> <p>Selected: {{ctrl.multipleDemo.colors2}}</p> <hr> <h3>Object Tags <small>(with grouping)</small></h3> <ui-select multiple tagging="ctrl.tagTransform" ng-model="ctrl.multipleDemo.selectedPeople" theme="bootstrap" ng-disabled="ctrl.disabled" style="width: 800px;" title="Choose a person"> <ui-select-match placeholder="Select person...">{{$item.name}} &lt;{{$item.email}}&gt;</ui-select-match> <ui-select-choices repeat="person in ctrl.people | propsFilter: {name: $select.search, age: $select.search}" group-by="'country'"> <div ng-if="person.isTag" ng-bind-html="(person.name | highlight: $select.search) +' (new)'"></div> <div ng-if="!person.isTag" ng-bind-html="person.name + person.isTag| highlight: $select.search"></div> <small> email: {{person.email}} age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> </small> </ui-select-choices> </ui-select> <p>Selected: </p> <pre>selectedPeople = {{ctrl.multipleDemo.selectedPeople | json}}</pre> <hr> <h3>Object Tags with Tokenization <small>("<code>&nbsp;</code>", <code>/</code>, <code>,</code>)</small></h3> <strong>Note that the Space character can't be used literally, use the keyword SPACE - <code>tagging-tokens="SPACE|,|/"</code></strong> <ui-select multiple tagging="ctrl.tagTransform" tagging-tokens="SPACE|,|/" ng-model="ctrl.multipleDemo.selectedPeople2" theme="bootstrap" ng-disabled="ctrl.disabled" style="width: 800px;" title="Choose a person"> <ui-select-match placeholder="Select person...">{{$item.name}} &lt;{{$item.email}}&gt;</ui-select-match> <ui-select-choices repeat="person in ctrl.people | propsFilter: {name: $select.search, age: $select.search}"> <div ng-if="person.isTag" ng-bind-html="person.name + ' ' + $select.taggingLabel | highlight: $select.search"></div> <div ng-if="!person.isTag" ng-bind-html="person.name| highlight: $select.search"></div> <small> email: {{person.email}} age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> </small> </ui-select-choices> </ui-select> <p>Selected: </p> <pre>selectedPeople2 = {{ctrl.multipleDemo.selectedPeople2 | json}}</pre> <h3>Tagging in Single Select mode</h3>(NOT WORKING) <ui-select tagging="ctrl.tagTransform" ng-model="ctrl.person.selected" theme="bootstrap" ng-disabled="ctrl.disabled" style="width: 800px;" title="Choose a person"> <ui-select-match placeholder="Select person...">{{$select.selected.name}} &lt;{{$select.selected.email}}&gt;</ui-select-match> <ui-select-choices repeat="person in ctrl.people | propsFilter: {name: $select.search, age: $select.search}"> <div ng-if="person.isTag" ng-bind-html="(person.name | highlight: $select.search) +' (new)'"></div> <div ng-if="!person.isTag" ng-bind-html="person.name + person.isTag| highlight: $select.search"></div> <small> email: {{person.email}} age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> </small> </ui-select-choices> </ui-select> <p>Selected:</p> <pre>ctrl.person.selected = {{ctrl.person.selected | json }}</pre> <h3>Tagging in Single select mode, with simple strings</h3>(NOT WORKING) <ui-select tagging tagging-label="('new')" ng-model="ctrl.singleDemo.color" theme="bootstrap" style="width: 800px;" title="Choose a color"> <ui-select-match placeholder="Select color...">{{$select.selected}}</ui-select-match> <ui-select-choices repeat="color in ctrl.availableColors | filter: $select.search"> <div ng-bind-html="color | highlight: $select.search"></div> </ui-select-choices> </ui-select> <p>Selected: <code>{{ctrl.singleDemo.color}}</code></p> <div style="height:500px"></div> </body> </html>