angular-gem 1.2.24 → 1.2.25

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -69,7 +69,7 @@ function minErr(module) {
69
69
  return match;
70
70
  });
71
71
 
72
- message = message + '\nhttp://errors.angularjs.org/1.2.24/' +
72
+ message = message + '\nhttp://errors.angularjs.org/1.2.25/' +
73
73
  (module ? module + '/' : '') + code;
74
74
  for (i = 2; i < arguments.length; i++) {
75
75
  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -129,10 +129,16 @@ function shallowClearAndCopy(src, dst) {
129
129
  * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
130
130
  * transform function or an array of such functions. The transform function takes the http
131
131
  * request body and headers and returns its transformed (typically serialized) version.
132
+ * By default, transformRequest will contain one function that checks if the request data is
133
+ * an object and serializes to using `angular.toJson`. To prevent this behavior, set
134
+ * `transformRequest` to an empty array: `transformRequest: []`
132
135
  * - **`transformResponse`** –
133
136
  * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
134
137
  * transform function or an array of such functions. The transform function takes the http
135
138
  * response body and headers and returns its transformed (typically deserialized) version.
139
+ * By default, transformResponse will contain one function that checks if the response looks like
140
+ * a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior, set
141
+ * `transformResponse` to an empty array: `transformResponse: []`
136
142
  * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
137
143
  * GET request, otherwise if a cache instance built with
138
144
  * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -771,7 +771,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
771
771
  controllerAs: 'chapter'
772
772
  });
773
773
 
774
- // configure html5 to get links working on jsfiddle
775
774
  $locationProvider.html5Mode(true);
776
775
  }])
777
776
  .controller('MainCtrl', ['$route', '$routeParams', '$location',
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -9790,7 +9790,7 @@ if ( typeof module === "object" && module && typeof module.exports === "object"
9790
9790
  })( window );
9791
9791
 
9792
9792
  /**
9793
- * @license AngularJS v1.2.24
9793
+ * @license AngularJS v1.2.25
9794
9794
  * (c) 2010-2014 Google, Inc. http://angularjs.org
9795
9795
  * License: MIT
9796
9796
  */
@@ -9860,7 +9860,7 @@ function minErr(module) {
9860
9860
  return match;
9861
9861
  });
9862
9862
 
9863
- message = message + '\nhttp://errors.angularjs.org/1.2.24/' +
9863
+ message = message + '\nhttp://errors.angularjs.org/1.2.25/' +
9864
9864
  (module ? module + '/' : '') + code;
9865
9865
  for (i = 2; i < arguments.length; i++) {
9866
9866
  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -11779,11 +11779,11 @@ function setupModuleLoader(window) {
11779
11779
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
11780
11780
  */
11781
11781
  var version = {
11782
- full: '1.2.24', // all of these placeholder strings will be replaced by grunt's
11782
+ full: '1.2.25', // all of these placeholder strings will be replaced by grunt's
11783
11783
  major: 1, // package task
11784
11784
  minor: 2,
11785
- dot: 24,
11786
- codeName: 'static-levitation'
11785
+ dot: 25,
11786
+ codeName: 'hypnotic-gesticulation'
11787
11787
  };
11788
11788
 
11789
11789
 
@@ -28913,14 +28913,13 @@ var forceAsyncEvents = {
28913
28913
  };
28914
28914
  forEach(
28915
28915
  'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),
28916
- function(name) {
28917
- var directiveName = directiveNormalize('ng-' + name);
28916
+ function(eventName) {
28917
+ var directiveName = directiveNormalize('ng-' + eventName);
28918
28918
  ngEventDirectives[directiveName] = ['$parse', '$rootScope', function($parse, $rootScope) {
28919
28919
  return {
28920
28920
  compile: function($element, attr) {
28921
28921
  var fn = $parse(attr[directiveName]);
28922
28922
  return function ngEventHandler(scope, element) {
28923
- var eventName = lowercase(name);
28924
28923
  element.on(eventName, function(event) {
28925
28924
  var callback = function() {
28926
28925
  fn(scope, {$event:event});
@@ -30447,8 +30446,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30447
30446
  *
30448
30447
  * @description
30449
30448
  * The `ngShow` directive shows or hides the given HTML element based on the expression
30450
- * provided to the ngShow attribute. The element is shown or hidden by removing or adding
30451
- * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
30449
+ * provided to the `ngShow` attribute. The element is shown or hidden by removing or adding
30450
+ * the `.ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
30452
30451
  * in AngularJS and sets the display style to none (using an !important flag).
30453
30452
  * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).
30454
30453
  *
@@ -30460,8 +30459,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30460
30459
  * <div ng-show="myValue" class="ng-hide"></div>
30461
30460
  * ```
30462
30461
  *
30463
- * When the ngShow expression evaluates to false then the ng-hide CSS class is added to the class attribute
30464
- * on the element causing it to become hidden. When true, the ng-hide CSS class is removed
30462
+ * When the `ngShow` expression evaluates to false then the `.ng-hide` CSS class is added to the class attribute
30463
+ * on the element causing it to become hidden. When true, the `.ng-hide` CSS class is removed
30465
30464
  * from the element causing the element not to appear hidden.
30466
30465
  *
30467
30466
  * <div class="alert alert-warning">
@@ -30471,7 +30470,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30471
30470
  *
30472
30471
  * ## Why is !important used?
30473
30472
  *
30474
- * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector
30473
+ * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector
30475
30474
  * can be easily overridden by heavier selectors. For example, something as simple
30476
30475
  * as changing the display style on a HTML list item would make hidden elements appear visible.
30477
30476
  * This also becomes a bigger issue when dealing with CSS frameworks.
@@ -30480,7 +30479,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30480
30479
  * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the
30481
30480
  * styling to change how to hide an element then it is just a matter of using !important in their own CSS code.
30482
30481
  *
30483
- * ### Overriding .ng-hide
30482
+ * ### Overriding `.ng-hide`
30484
30483
  *
30485
30484
  * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change
30486
30485
  * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide`
@@ -30498,7 +30497,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30498
30497
  *
30499
30498
  * By default you don't need to override in CSS anything and the animations will work around the display style.
30500
30499
  *
30501
- * ## A note about animations with ngShow
30500
+ * ## A note about animations with `ngShow`
30502
30501
  *
30503
30502
  * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression
30504
30503
  * is true and false. This system works like the animation system present with ngClass except that
@@ -30523,8 +30522,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
30523
30522
  * property to block during animation states--ngAnimate will handle the style toggling automatically for you.
30524
30523
  *
30525
30524
  * @animations
30526
- * addClass: .ng-hide - happens after the ngShow expression evaluates to a truthy value and the just before contents are set to visible
30527
- * removeClass: .ng-hide - happens after the ngShow expression evaluates to a non truthy value and just before the contents are set to hidden
30525
+ * addClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a truthy value and the just before contents are set to visible
30526
+ * removeClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a non truthy value and just before the contents are set to hidden
30528
30527
  *
30529
30528
  * @element ANY
30530
30529
  * @param {expression} ngShow If the {@link guide/expression expression} is truthy
@@ -30604,7 +30603,7 @@ var ngShowDirective = ['$animate', function($animate) {
30604
30603
  *
30605
30604
  * @description
30606
30605
  * The `ngHide` directive shows or hides the given HTML element based on the expression
30607
- * provided to the ngHide attribute. The element is shown or hidden by removing or adding
30606
+ * provided to the `ngHide` attribute. The element is shown or hidden by removing or adding
30608
30607
  * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
30609
30608
  * in AngularJS and sets the display style to none (using an !important flag).
30610
30609
  * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).
@@ -30617,8 +30616,8 @@ var ngShowDirective = ['$animate', function($animate) {
30617
30616
  * <div ng-hide="myValue"></div>
30618
30617
  * ```
30619
30618
  *
30620
- * When the ngHide expression evaluates to true then the .ng-hide CSS class is added to the class attribute
30621
- * on the element causing it to become hidden. When false, the ng-hide CSS class is removed
30619
+ * When the `.ngHide` expression evaluates to true then the `.ng-hide` CSS class is added to the class attribute
30620
+ * on the element causing it to become hidden. When false, the `.ng-hide` CSS class is removed
30622
30621
  * from the element causing the element not to appear hidden.
30623
30622
  *
30624
30623
  * <div class="alert alert-warning">
@@ -30628,7 +30627,7 @@ var ngShowDirective = ['$animate', function($animate) {
30628
30627
  *
30629
30628
  * ## Why is !important used?
30630
30629
  *
30631
- * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector
30630
+ * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector
30632
30631
  * can be easily overridden by heavier selectors. For example, something as simple
30633
30632
  * as changing the display style on a HTML list item would make hidden elements appear visible.
30634
30633
  * This also becomes a bigger issue when dealing with CSS frameworks.
@@ -30637,7 +30636,7 @@ var ngShowDirective = ['$animate', function($animate) {
30637
30636
  * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the
30638
30637
  * styling to change how to hide an element then it is just a matter of using !important in their own CSS code.
30639
30638
  *
30640
- * ### Overriding .ng-hide
30639
+ * ### Overriding `.ng-hide`
30641
30640
  *
30642
30641
  * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change
30643
30642
  * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide`
@@ -30655,7 +30654,7 @@ var ngShowDirective = ['$animate', function($animate) {
30655
30654
  *
30656
30655
  * By default you don't need to override in CSS anything and the animations will work around the display style.
30657
30656
  *
30658
- * ## A note about animations with ngHide
30657
+ * ## A note about animations with `ngHide`
30659
30658
  *
30660
30659
  * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression
30661
30660
  * is true and false. This system works like the animation system present with ngClass, except that the `.ng-hide`
@@ -30679,8 +30678,8 @@ var ngShowDirective = ['$animate', function($animate) {
30679
30678
  * property to block during animation states--ngAnimate will handle the style toggling automatically for you.
30680
30679
  *
30681
30680
  * @animations
30682
- * removeClass: .ng-hide - happens after the ngHide expression evaluates to a truthy value and just before the contents are set to hidden
30683
- * addClass: .ng-hide - happens after the ngHide expression evaluates to a non truthy value and just before the contents are set to visible
30681
+ * removeClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a truthy value and just before the contents are set to hidden
30682
+ * addClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a non truthy value and just before the contents are set to visible
30684
30683
  *
30685
30684
  * @element ANY
30686
30685
  * @param {expression} ngHide If the {@link guide/expression expression} is truthy then
@@ -31533,6 +31532,19 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
31533
31532
  ctrl.$render = render;
31534
31533
 
31535
31534
  scope.$watchCollection(valuesFn, render);
31535
+ scope.$watchCollection(function () {
31536
+ var locals = {},
31537
+ values = valuesFn(scope);
31538
+ if (values) {
31539
+ var toDisplay = new Array(values.length);
31540
+ for (var i = 0, ii = values.length; i < ii; i++) {
31541
+ locals[valueName] = values[i];
31542
+ toDisplay[i] = displayFn(scope, locals);
31543
+ }
31544
+ return toDisplay;
31545
+ }
31546
+ }, render);
31547
+
31536
31548
  if ( multiple ) {
31537
31549
  scope.$watchCollection(function() { return ctrl.$modelValue; }, render);
31538
31550
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.24
2
+ * @license AngularJS v1.2.25
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -68,7 +68,7 @@ function minErr(module) {
68
68
  return match;
69
69
  });
70
70
 
71
- message = message + '\nhttp://errors.angularjs.org/1.2.24/' +
71
+ message = message + '\nhttp://errors.angularjs.org/1.2.25/' +
72
72
  (module ? module + '/' : '') + code;
73
73
  for (i = 2; i < arguments.length; i++) {
74
74
  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -1987,11 +1987,11 @@ function setupModuleLoader(window) {
1987
1987
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
1988
1988
  */
1989
1989
  var version = {
1990
- full: '1.2.24', // all of these placeholder strings will be replaced by grunt's
1990
+ full: '1.2.25', // all of these placeholder strings will be replaced by grunt's
1991
1991
  major: 1, // package task
1992
1992
  minor: 2,
1993
- dot: 24,
1994
- codeName: 'static-levitation'
1993
+ dot: 25,
1994
+ codeName: 'hypnotic-gesticulation'
1995
1995
  };
1996
1996
 
1997
1997
 
@@ -19121,14 +19121,13 @@ var forceAsyncEvents = {
19121
19121
  };
19122
19122
  forEach(
19123
19123
  'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),
19124
- function(name) {
19125
- var directiveName = directiveNormalize('ng-' + name);
19124
+ function(eventName) {
19125
+ var directiveName = directiveNormalize('ng-' + eventName);
19126
19126
  ngEventDirectives[directiveName] = ['$parse', '$rootScope', function($parse, $rootScope) {
19127
19127
  return {
19128
19128
  compile: function($element, attr) {
19129
19129
  var fn = $parse(attr[directiveName]);
19130
19130
  return function ngEventHandler(scope, element) {
19131
- var eventName = lowercase(name);
19132
19131
  element.on(eventName, function(event) {
19133
19132
  var callback = function() {
19134
19133
  fn(scope, {$event:event});
@@ -20655,8 +20654,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20655
20654
  *
20656
20655
  * @description
20657
20656
  * The `ngShow` directive shows or hides the given HTML element based on the expression
20658
- * provided to the ngShow attribute. The element is shown or hidden by removing or adding
20659
- * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
20657
+ * provided to the `ngShow` attribute. The element is shown or hidden by removing or adding
20658
+ * the `.ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
20660
20659
  * in AngularJS and sets the display style to none (using an !important flag).
20661
20660
  * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).
20662
20661
  *
@@ -20668,8 +20667,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20668
20667
  * <div ng-show="myValue" class="ng-hide"></div>
20669
20668
  * ```
20670
20669
  *
20671
- * When the ngShow expression evaluates to false then the ng-hide CSS class is added to the class attribute
20672
- * on the element causing it to become hidden. When true, the ng-hide CSS class is removed
20670
+ * When the `ngShow` expression evaluates to false then the `.ng-hide` CSS class is added to the class attribute
20671
+ * on the element causing it to become hidden. When true, the `.ng-hide` CSS class is removed
20673
20672
  * from the element causing the element not to appear hidden.
20674
20673
  *
20675
20674
  * <div class="alert alert-warning">
@@ -20679,7 +20678,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20679
20678
  *
20680
20679
  * ## Why is !important used?
20681
20680
  *
20682
- * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector
20681
+ * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector
20683
20682
  * can be easily overridden by heavier selectors. For example, something as simple
20684
20683
  * as changing the display style on a HTML list item would make hidden elements appear visible.
20685
20684
  * This also becomes a bigger issue when dealing with CSS frameworks.
@@ -20688,7 +20687,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20688
20687
  * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the
20689
20688
  * styling to change how to hide an element then it is just a matter of using !important in their own CSS code.
20690
20689
  *
20691
- * ### Overriding .ng-hide
20690
+ * ### Overriding `.ng-hide`
20692
20691
  *
20693
20692
  * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change
20694
20693
  * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide`
@@ -20706,7 +20705,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20706
20705
  *
20707
20706
  * By default you don't need to override in CSS anything and the animations will work around the display style.
20708
20707
  *
20709
- * ## A note about animations with ngShow
20708
+ * ## A note about animations with `ngShow`
20710
20709
  *
20711
20710
  * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression
20712
20711
  * is true and false. This system works like the animation system present with ngClass except that
@@ -20731,8 +20730,8 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
20731
20730
  * property to block during animation states--ngAnimate will handle the style toggling automatically for you.
20732
20731
  *
20733
20732
  * @animations
20734
- * addClass: .ng-hide - happens after the ngShow expression evaluates to a truthy value and the just before contents are set to visible
20735
- * removeClass: .ng-hide - happens after the ngShow expression evaluates to a non truthy value and just before the contents are set to hidden
20733
+ * addClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a truthy value and the just before contents are set to visible
20734
+ * removeClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a non truthy value and just before the contents are set to hidden
20736
20735
  *
20737
20736
  * @element ANY
20738
20737
  * @param {expression} ngShow If the {@link guide/expression expression} is truthy
@@ -20812,7 +20811,7 @@ var ngShowDirective = ['$animate', function($animate) {
20812
20811
  *
20813
20812
  * @description
20814
20813
  * The `ngHide` directive shows or hides the given HTML element based on the expression
20815
- * provided to the ngHide attribute. The element is shown or hidden by removing or adding
20814
+ * provided to the `ngHide` attribute. The element is shown or hidden by removing or adding
20816
20815
  * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined
20817
20816
  * in AngularJS and sets the display style to none (using an !important flag).
20818
20817
  * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).
@@ -20825,8 +20824,8 @@ var ngShowDirective = ['$animate', function($animate) {
20825
20824
  * <div ng-hide="myValue"></div>
20826
20825
  * ```
20827
20826
  *
20828
- * When the ngHide expression evaluates to true then the .ng-hide CSS class is added to the class attribute
20829
- * on the element causing it to become hidden. When false, the ng-hide CSS class is removed
20827
+ * When the `.ngHide` expression evaluates to true then the `.ng-hide` CSS class is added to the class attribute
20828
+ * on the element causing it to become hidden. When false, the `.ng-hide` CSS class is removed
20830
20829
  * from the element causing the element not to appear hidden.
20831
20830
  *
20832
20831
  * <div class="alert alert-warning">
@@ -20836,7 +20835,7 @@ var ngShowDirective = ['$animate', function($animate) {
20836
20835
  *
20837
20836
  * ## Why is !important used?
20838
20837
  *
20839
- * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector
20838
+ * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector
20840
20839
  * can be easily overridden by heavier selectors. For example, something as simple
20841
20840
  * as changing the display style on a HTML list item would make hidden elements appear visible.
20842
20841
  * This also becomes a bigger issue when dealing with CSS frameworks.
@@ -20845,7 +20844,7 @@ var ngShowDirective = ['$animate', function($animate) {
20845
20844
  * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the
20846
20845
  * styling to change how to hide an element then it is just a matter of using !important in their own CSS code.
20847
20846
  *
20848
- * ### Overriding .ng-hide
20847
+ * ### Overriding `.ng-hide`
20849
20848
  *
20850
20849
  * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change
20851
20850
  * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide`
@@ -20863,7 +20862,7 @@ var ngShowDirective = ['$animate', function($animate) {
20863
20862
  *
20864
20863
  * By default you don't need to override in CSS anything and the animations will work around the display style.
20865
20864
  *
20866
- * ## A note about animations with ngHide
20865
+ * ## A note about animations with `ngHide`
20867
20866
  *
20868
20867
  * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression
20869
20868
  * is true and false. This system works like the animation system present with ngClass, except that the `.ng-hide`
@@ -20887,8 +20886,8 @@ var ngShowDirective = ['$animate', function($animate) {
20887
20886
  * property to block during animation states--ngAnimate will handle the style toggling automatically for you.
20888
20887
  *
20889
20888
  * @animations
20890
- * removeClass: .ng-hide - happens after the ngHide expression evaluates to a truthy value and just before the contents are set to hidden
20891
- * addClass: .ng-hide - happens after the ngHide expression evaluates to a non truthy value and just before the contents are set to visible
20889
+ * removeClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a truthy value and just before the contents are set to hidden
20890
+ * addClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a non truthy value and just before the contents are set to visible
20892
20891
  *
20893
20892
  * @element ANY
20894
20893
  * @param {expression} ngHide If the {@link guide/expression expression} is truthy then
@@ -21741,6 +21740,19 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
21741
21740
  ctrl.$render = render;
21742
21741
 
21743
21742
  scope.$watchCollection(valuesFn, render);
21743
+ scope.$watchCollection(function () {
21744
+ var locals = {},
21745
+ values = valuesFn(scope);
21746
+ if (values) {
21747
+ var toDisplay = new Array(values.length);
21748
+ for (var i = 0, ii = values.length; i < ii; i++) {
21749
+ locals[valueName] = values[i];
21750
+ toDisplay[i] = displayFn(scope, locals);
21751
+ }
21752
+ return toDisplay;
21753
+ }
21754
+ }, render);
21755
+
21744
21756
  if ( multiple ) {
21745
21757
  scope.$watchCollection(function() { return ctrl.$modelValue; }, render);
21746
21758
  }