From 4e740b034c92ff87118ef7478ee760b8cbd89607 Mon Sep 17 00:00:00 2001 From: Janet Jin Date: Sat, 9 Aug 2014 18:28:48 -0700 Subject: [PATCH] Fix #3 Support conversion Function between select2 and angularJS view model Signed-off-by: Janet Jin --- src/select2.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/select2.js b/src/select2.js index 828032d..3ead77d 100644 --- a/src/select2.js +++ b/src/select2.js @@ -42,8 +42,15 @@ angular.module('ui.select2', []).value('uiSelect2Config', {}).directive('uiSelec if (opts.simple_tags) { model = []; angular.forEach(select2_data, function(value, index) { - model.push(value.id); - }); + //modified by yjin to allow customized conversion function in options + //Original code here: model.push(value.id); + if(opts.convertToAngularFunc && (typeof (opts.convertToAngularFunc) === 'function')) { + opts.convertToAngularFunc.call(this, model, value); + } + else { + model.push(value.id); + } + }); } else { model = select2_data; } @@ -64,7 +71,13 @@ angular.module('ui.select2', []).value('uiSelect2Config', {}).directive('uiSelec angular.forEach( angular_data, function(value, index) { - model.push({'id': value, 'text': value}); + //modified by yjin to allow customized conversion function in options + //Original Code here: model.push({'id': value, 'text': value}); + if(opts.convertToSelect2Func && (typeof (opts.convertToSelect2Func) === 'function')) { + opts.convertToSelect2Func.call(this, model, value); + } else { + model.push({'id': value, 'text': value}); + } }); } else { model = angular_data;