@@ -383,64 +383,6 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
383
383
// clear contents, we'll add what's needed based on the model
384
384
selectElement . empty ( ) ;
385
385
386
- function getViewValue ( el , scope , locals , collection , multiple ) {
387
- var key = el . val ( ) ;
388
- var value ;
389
- var calculateViewValue ;
390
-
391
- if ( selectAsFn ) {
392
- calculateViewValue = function ( ) {
393
- var collectionWithValueName = { } ;
394
- collectionWithValueName [ valueName ] = collection [ key ] ;
395
- collectionWithValueName [ keyName ] = key ;
396
-
397
- for ( var i in collection ) {
398
- if ( collection . hasOwnProperty ( i ) ) {
399
- locals [ valueName ] = collection [ i ] ;
400
- if ( keyName ) locals [ keyName ] = i ;
401
- if ( selectAsFn ( scope , locals ) ==
402
- selectAsFn ( scope , collectionWithValueName ) ) {
403
- return selectAsFn ( scope , locals ) ;
404
- }
405
- }
406
- }
407
- } ;
408
- } else if ( trackFn ) {
409
- calculateViewValue = function ( ) {
410
- for ( var trackIndex = 0 ; trackIndex < collection . length ; trackIndex ++ ) {
411
- locals [ valueName ] = collection [ trackIndex ] ;
412
- if ( trackFn ( scope , locals ) == key ) {
413
- return valueFn ( scope , locals ) ;
414
- }
415
- }
416
- } ;
417
- }
418
- else {
419
- calculateViewValue = function ( ) {
420
- locals [ valueName ] = collection [ key ] ;
421
- if ( keyName ) locals [ keyName ] = key ;
422
- return valueFn ( scope , locals ) ;
423
- } ;
424
- }
425
-
426
- if ( multiple ) {
427
- if ( keyName ) locals [ keyName ] = key ;
428
- calculateViewValue ( ) ;
429
-
430
- return ( selectAsFn || valueFn ) ( scope , locals ) ;
431
- }
432
-
433
- if ( key == '?' ) {
434
- value = undefined ;
435
- } else if ( key === '' ) {
436
- value = null ;
437
- } else {
438
- value = calculateViewValue ( ) ;
439
- }
440
-
441
- return value ;
442
- }
443
-
444
386
selectElement . on ( 'change' , function ( ) {
445
387
scope . $apply ( function ( ) {
446
388
var optionGroup ,
@@ -509,6 +451,62 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
509
451
return selectedSet ;
510
452
}
511
453
454
+ function getViewValue ( el , scope , locals , collection , multiple ) {
455
+ var key = el . val ( ) ;
456
+ var value ;
457
+ var calculateViewValue ;
458
+
459
+ if ( selectAsFn ) {
460
+ calculateViewValue = function ( ) {
461
+ var collectionWithValueName = { } ;
462
+ collectionWithValueName [ valueName ] = collection [ key ] ;
463
+ collectionWithValueName [ keyName ] = key ;
464
+
465
+ for ( var i in collection ) {
466
+ if ( collection . hasOwnProperty ( i ) ) {
467
+ locals [ valueName ] = collection [ i ] ;
468
+ if ( keyName ) locals [ keyName ] = i ;
469
+ if ( selectAsFn ( scope , locals ) ==
470
+ selectAsFn ( scope , collectionWithValueName ) ) {
471
+ return selectAsFn ( scope , locals ) ;
472
+ }
473
+ }
474
+ }
475
+ } ;
476
+ } else if ( trackFn ) {
477
+ calculateViewValue = function ( ) {
478
+ for ( var trackIndex = 0 ; trackIndex < collection . length ; trackIndex ++ ) {
479
+ locals [ valueName ] = collection [ trackIndex ] ;
480
+ if ( trackFn ( scope , locals ) == key ) {
481
+ return valueFn ( scope , locals ) ;
482
+ }
483
+ }
484
+ } ;
485
+ } else {
486
+ calculateViewValue = function ( ) {
487
+ locals [ valueName ] = collection [ key ] ;
488
+ if ( keyName ) locals [ keyName ] = key ;
489
+ return valueFn ( scope , locals ) ;
490
+ } ;
491
+ }
492
+
493
+ if ( multiple ) {
494
+ if ( keyName ) locals [ keyName ] = key ;
495
+ calculateViewValue ( ) ;
496
+ return ( selectAsFn || valueFn ) ( scope , locals ) ;
497
+ }
498
+
499
+ if ( key == '?' ) {
500
+ value = undefined ;
501
+ } else if ( key === '' ) {
502
+ value = null ;
503
+ } else {
504
+ value = calculateViewValue ( ) ;
505
+ }
506
+
507
+ return value ;
508
+ }
509
+
512
510
513
511
function scheduleRendering ( ) {
514
512
if ( ! renderScheduled ) {
0 commit comments