diff --git a/dist/angular-select2.js b/dist/angular-select2.js index 45af39e..5185bfe 100644 --- a/dist/angular-select2.js +++ b/dist/angular-select2.js @@ -138,6 +138,7 @@ angular.module("rt.select2", []) var keys = (keyName ? sortedKeys(values) : values) || []; var options = []; + optionItems = {}; for (var i = 0; i < keys.length; i++) { var locals = {}; var key = i; @@ -151,11 +152,12 @@ angular.module("rt.select2", []) var label = displayFn(scope, locals) || ""; if (label.toLowerCase().indexOf(query.term.toLowerCase()) > -1) { - options.push({ + optionItems[value] = { id: value, text: label, obj: values[key] - }); + }; + options.push(optionItems[value]); } } @@ -248,6 +250,7 @@ angular.module("rt.select2", []) }; select2Stack.$register(controlObj); scope.$on("destroy", function () { + element.select2("destroy"); select2Stack.$unregister(controlObj); }); diff --git a/dist/angular-select2.min.js b/dist/angular-select2.min.js index c200f70..28d279e 100644 --- a/dist/angular-select2.min.js +++ b/dist/angular-select2.min.js @@ -1 +1 @@ -angular.module("rt.select2",[]).value("select2Config",{}).factory("select2Stack",function(){var a=[];return{$register:function(b){a.push(b)},$unregister:function(b){var c=a.indexOf(b);-1!==c&&a.splice(c,1)},closeAll:function(){a.forEach(function(a){a.close()})}}}).directive("select2",["$rootScope","$timeout","$parse","$filter","select2Config","select2Stack",function(a,b,c,d,e,f){"use strict";function g(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b.sort()}var h=d("filter"),i={},j=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/;return e&&angular.extend(i,e),{require:"ngModel",priority:1,restrict:"E",template:'',replace:!0,link:function(a,d,e,k){function l(b){if(q){var c=q(a);if(c)return h(b,c)}return b}function m(a){n(p?function(b){for(var c=[],d=0;d-1&&c.push(e)}a(c)}:function(){a(r[k.$viewValue]||{obj:{}})})}var n,o=angular.extend({},i,a.$eval(e.options)),p=angular.isDefined(e.multiple)||o.multiple;o.multiple=p,p&&(k.$isEmpty=function(a){return!a||0===a.length}),e.placeholder&&(o.placeholder=e.placeholder);var q=c(e.optionsFilter),r={};if(e.s2Options){var s;if(!(s=e.s2Options.match(j)))throw new Error("Invalid s2Options encountered!");var t=c(s[2]||s[1]),u=c(s[7]),v=s[4]||s[6],w=c(s[2]?s[1]:v),x=s[5];n=function(b){r={};for(var c=l(u(a)),d=(x?g(c):c)||[],e=[],f=0;f-1&&e.push({id:j,text:k,obj:c[i]})}b.callback({results:e})},a.$watch(s[7],function(){k.$render()})}else{if(!o.query)throw new Error("You need to supply a query function!");var y=o.query;o.query=function(a){var b=a.callback;a.callback=function(a){for(var c=0;c',replace:!0,link:function(a,d,e,k){function l(b){if(q){var c=q(a);if(c)return h(b,c)}return b}function m(a){n(p?function(b){for(var c=[],d=0;d-1&&c.push(e)}a(c)}:function(){a(r[k.$viewValue]||{obj:{}})})}var n,o=angular.extend({},i,a.$eval(e.options)),p=angular.isDefined(e.multiple)||o.multiple;o.multiple=p,p&&(k.$isEmpty=function(a){return!a||0===a.length}),e.placeholder&&(o.placeholder=e.placeholder);var q=c(e.optionsFilter),r={};if(e.s2Options){var s;if(!(s=e.s2Options.match(j)))throw new Error("Invalid s2Options encountered!");var t=c(s[2]||s[1]),u=c(s[7]),v=s[4]||s[6],w=c(s[2]?s[1]:v),x=s[5];n=function(b){r={};for(var c=l(u(a)),d=(x?g(c):c)||[],e=[],f=0;f-1&&(r[j]={id:j,text:k,obj:c[i]},e.push(r[j]))}b.callback({results:e})},a.$watch(s[7],function(){k.$render()})}else{if(!o.query)throw new Error("You need to supply a query function!");var y=o.query;o.query=function(a){var b=a.callback;a.callback=function(a){for(var c=0;c -1) { - options.push({ + optionItems[value] = { id: value, text: label, obj: values[key] - }); + }; + options.push(optionItems[value]); } } @@ -249,6 +251,7 @@ angular.module("rt.select2", []) select2Stack.$register(controlObj); scope.$on("destroy", function () { select2Stack.$unregister(controlObj); + element.select2("destroy"); }); $timeout(function () {