angularjs-rails 1.5.8 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d04d5e9d07101020a4ff8ce65da72f687ae662ac
4
- data.tar.gz: a331710f55c8863f808ff55b19e13f7fbea622d9
3
+ metadata.gz: ff1cc2b9938b70a449ef733e168c09bdfd92150d
4
+ data.tar.gz: 1f423457cf1c7f67fde9870f6fd5dd92177210fc
5
5
  SHA512:
6
- metadata.gz: 6a6f1fd278f3a44256c869257be4ba5ce847847dd1f7061bb0e8d865207a7a628bfec0549ed5e7217987325bc5f3423d1bd7306dff786dc39a4d796d1ff46387
7
- data.tar.gz: ac1409c3a42f91f5801b8084e8ade1a5f9f06e2519c55100ff7f2817210d92d88ad890a16037d03f9019e0aa74a8fabba2881f1687d7e743b797f79884d31e24
6
+ metadata.gz: c9d3da60563a7654c413582735222d29245b810c8a45418011a8737a92b2698d611ab37065ae0fd9b4985a2e422e1b49412ba23376c499354ea1cf23da936c3b
7
+ data.tar.gz: 869e11552cbac05449da26b9656c6729c197cee485c3d05c1ce468d2500960edf54b7b8a40727bd54b84df91552a02822c477e4f54a65263f9aecbb8d9c50b56
@@ -3,4 +3,4 @@ module AngularJS
3
3
  class Engine < ::Rails::Engine
4
4
  end
5
5
  end
6
- end
6
+ end
@@ -1,6 +1,6 @@
1
1
  module AngularJS
2
2
  module Rails
3
- VERSION = "1.5.8"
3
+ VERSION = "1.6.0"
4
4
  UNSTABLE_VERSION = "2.0.0-beta.17"
5
5
  end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.5.8
2
+ * @license AngularJS v1.6.0
3
3
  * (c) 2010-2016 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -29,7 +29,7 @@ var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMA
29
29
  // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit
30
30
  // therefore there is no reason to test anymore for other vendor prefixes:
31
31
  // http://caniuse.com/#search=transition
32
- if ((window.ontransitionend === void 0) && (window.onwebkittransitionend !== void 0)) {
32
+ if ((window.ontransitionend === undefined) && (window.onwebkittransitionend !== undefined)) {
33
33
  CSS_PREFIX = '-webkit-';
34
34
  TRANSITION_PROP = 'WebkitTransition';
35
35
  TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend';
@@ -38,7 +38,7 @@ if ((window.ontransitionend === void 0) && (window.onwebkittransitionend !== voi
38
38
  TRANSITIONEND_EVENT = 'transitionend';
39
39
  }
40
40
 
41
- if ((window.onanimationend === void 0) && (window.onwebkitanimationend !== void 0)) {
41
+ if ((window.onanimationend === undefined) && (window.onwebkitanimationend !== undefined)) {
42
42
  CSS_PREFIX = '-webkit-';
43
43
  ANIMATION_PROP = 'WebkitAnimation';
44
44
  ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend';
@@ -63,7 +63,7 @@ var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY;
63
63
  var ngMinErr = angular.$$minErr('ng');
64
64
  function assertArg(arg, name, reason) {
65
65
  if (!arg) {
66
- throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required"));
66
+ throw ngMinErr('areq', 'Argument \'{0}\' is {1}', (name || '?'), (reason || 'required'));
67
67
  }
68
68
  return arg;
69
69
  }
@@ -139,7 +139,7 @@ function extractElementNode(element) {
139
139
  if (!element[0]) return element;
140
140
  for (var i = 0; i < element.length; i++) {
141
141
  var elm = element[i];
142
- if (elm.nodeType == ELEMENT_NODE) {
142
+ if (elm.nodeType === ELEMENT_NODE) {
143
143
  return elm;
144
144
  }
145
145
  }
@@ -423,7 +423,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
423
423
  * of the children's parents are currently animating. By default, when an element has an active `enter`, `leave`, or `move`
424
424
  * (structural) animation, child elements that also have an active structural animation are not animated.
425
425
  *
426
- * Note that even if `ngAnimteChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).
426
+ * Note that even if `ngAnimateChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).
427
427
  *
428
428
  *
429
429
  * @param {string} ngAnimateChildren If the value is empty, `true` or `on`,
@@ -432,7 +432,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
432
432
  * @example
433
433
  * <example module="ngAnimateChildren" name="ngAnimateChildren" deps="angular-animate.js" animations="true">
434
434
  <file name="index.html">
435
- <div ng-controller="mainController as main">
435
+ <div ng-controller="MainController as main">
436
436
  <label>Show container? <input type="checkbox" ng-model="main.enterElement" /></label>
437
437
  <label>Animate children? <input type="checkbox" ng-model="main.animateChildren" /></label>
438
438
  <hr>
@@ -482,7 +482,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
482
482
  </file>
483
483
  <file name="script.js">
484
484
  angular.module('ngAnimateChildren', ['ngAnimate'])
485
- .controller('mainController', function() {
485
+ .controller('MainController', function MainController() {
486
486
  this.animateChildren = false;
487
487
  this.enterElement = false;
488
488
  });
@@ -510,6 +510,8 @@ var $$AnimateChildrenDirective = ['$interpolate', function($interpolate) {
510
510
  };
511
511
  }];
512
512
 
513
+ /* exported $AnimateCssProvider */
514
+
513
515
  var ANIMATE_TIMER_KEY = '$$animateCss';
514
516
 
515
517
  /**
@@ -727,7 +729,6 @@ var ANIMATE_TIMER_KEY = '$$animateCss';
727
729
  * * `end` - This method will cancel the animation and remove all applied CSS classes and styles.
728
730
  */
729
731
  var ONE_SECOND = 1000;
730
- var BASE_TEN = 10;
731
732
 
732
733
  var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;
733
734
  var CLOSING_TIME_BUFFER = 1.5;
@@ -789,7 +790,7 @@ function parseMaxTime(str) {
789
790
  forEach(values, function(value) {
790
791
  // it's always safe to consider only second values and omit `ms` values since
791
792
  // getComputedStyle will always handle the conversion for us
792
- if (value.charAt(value.length - 1) == 's') {
793
+ if (value.charAt(value.length - 1) === 's') {
793
794
  value = value.substring(0, value.length - 1);
794
795
  }
795
796
  value = parseFloat(value) || 0;
@@ -857,7 +858,7 @@ function registerRestorableStyles(backup, node, properties) {
857
858
  });
858
859
  }
859
860
 
860
- var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
861
+ var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animateProvider) {
861
862
  var gcsLookup = createLocalCacheLookup();
862
863
  var gcsStaggerLookup = createLocalCacheLookup();
863
864
 
@@ -870,7 +871,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
870
871
 
871
872
  var parentCounter = 0;
872
873
  function gcsHashFn(node, extraClasses) {
873
- var KEY = "$$ngAnimateParentKey";
874
+ var KEY = '$$ngAnimateParentKey';
874
875
  var parentNode = node.parentNode;
875
876
  var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter);
876
877
  return parentID + '-' + node.getAttribute('class') + '-' + extraClasses;
@@ -921,7 +922,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
921
922
  return stagger || {};
922
923
  }
923
924
 
924
- var cancelLastRAFRequest;
925
925
  var rafWaitQueue = [];
926
926
  function waitUntilQuiet(callback) {
927
927
  rafWaitQueue.push(callback);
@@ -1110,7 +1110,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1110
1110
  var flags = {};
1111
1111
  flags.hasTransitions = timings.transitionDuration > 0;
1112
1112
  flags.hasAnimations = timings.animationDuration > 0;
1113
- flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty == 'all';
1113
+ flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty === 'all';
1114
1114
  flags.applyTransitionDuration = hasToStyles && (
1115
1115
  (flags.hasTransitions && !flags.hasTransitionAll)
1116
1116
  || (flags.hasAnimations && !flags.hasTransitions));
@@ -1142,7 +1142,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1142
1142
 
1143
1143
  if (options.delay != null) {
1144
1144
  var delayStyle;
1145
- if (typeof options.delay !== "boolean") {
1145
+ if (typeof options.delay !== 'boolean') {
1146
1146
  delayStyle = parseFloat(options.delay);
1147
1147
  // number in options.delay means we have to recalculate the delay for the closing timeout
1148
1148
  maxDelay = Math.max(delayStyle, 0);
@@ -1220,7 +1220,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1220
1220
  close(true);
1221
1221
  }
1222
1222
 
1223
- function close(rejected) { // jshint ignore:line
1223
+ function close(rejected) {
1224
1224
  // if the promise has been called already then we shouldn't close
1225
1225
  // the animation again
1226
1226
  if (animationClosed || (animationCompleted && animationPaused)) return;
@@ -1247,8 +1247,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1247
1247
 
1248
1248
  if (Object.keys(restoreStyles).length) {
1249
1249
  forEach(restoreStyles, function(value, prop) {
1250
- value ? node.style.setProperty(prop, value)
1251
- : node.style.removeProperty(prop);
1250
+ if (value) {
1251
+ node.style.setProperty(prop, value);
1252
+ } else {
1253
+ node.style.removeProperty(prop);
1254
+ }
1252
1255
  });
1253
1256
  }
1254
1257
 
@@ -1351,9 +1354,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1351
1354
  animationPaused = !playAnimation;
1352
1355
  if (timings.animationDuration) {
1353
1356
  var value = blockKeyframeAnimations(node, animationPaused);
1354
- animationPaused
1355
- ? temporaryStyles.push(value)
1356
- : removeFromArray(temporaryStyles, value);
1357
+ if (animationPaused) {
1358
+ temporaryStyles.push(value);
1359
+ } else {
1360
+ removeFromArray(temporaryStyles, value);
1361
+ }
1357
1362
  }
1358
1363
  } else if (animationPaused && playAnimation) {
1359
1364
  animationPaused = false;
@@ -1402,7 +1407,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1402
1407
  $$jqLite.addClass(element, activeClasses);
1403
1408
 
1404
1409
  if (flags.recalculateTimingStyles) {
1405
- fullClassName = node.className + ' ' + preparationClasses;
1410
+ fullClassName = node.getAttribute('class') + ' ' + preparationClasses;
1406
1411
  cacheKey = gcsHashFn(node, fullClassName);
1407
1412
 
1408
1413
  timings = computeTimings(node, fullClassName, cacheKey);
@@ -1420,7 +1425,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1420
1425
  }
1421
1426
 
1422
1427
  if (flags.applyAnimationDelay) {
1423
- relativeDelay = typeof options.delay !== "boolean" && truthyTimingValue(options.delay)
1428
+ relativeDelay = typeof options.delay !== 'boolean' && truthyTimingValue(options.delay)
1424
1429
  ? parseFloat(options.delay)
1425
1430
  : relativeDelay;
1426
1431
 
@@ -1512,7 +1517,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
1512
1517
  }];
1513
1518
  }];
1514
1519
 
1515
- var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) {
1520
+ var $$AnimateCssDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
1516
1521
  $$animationProvider.drivers.push('$$animateCssDriver');
1517
1522
 
1518
1523
  var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim';
@@ -1541,8 +1546,6 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
1541
1546
  isDocumentFragment(rootNode) || bodyNode.contains(rootNode) ? rootNode : bodyNode
1542
1547
  );
1543
1548
 
1544
- var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
1545
-
1546
1549
  return function initDriverFn(animationDetails) {
1547
1550
  return animationDetails.from && animationDetails.to
1548
1551
  ? prepareFromToAnchorAnimation(animationDetails.from,
@@ -1784,7 +1787,7 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
1784
1787
  // TODO(matsko): add documentation
1785
1788
  // by the time...
1786
1789
 
1787
- var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
1790
+ var $$AnimateJsProvider = ['$animateProvider', /** @this */ function($animateProvider) {
1788
1791
  this.$get = ['$injector', '$$AnimateRunner', '$$jqLite',
1789
1792
  function($injector, $$AnimateRunner, $$jqLite) {
1790
1793
 
@@ -1823,7 +1826,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
1823
1826
  var before, after;
1824
1827
  if (animations.length) {
1825
1828
  var afterFn, beforeFn;
1826
- if (event == 'leave') {
1829
+ if (event === 'leave') {
1827
1830
  beforeFn = 'leave';
1828
1831
  afterFn = 'afterLeave'; // TODO(matsko): get rid of this
1829
1832
  } else {
@@ -2008,7 +2011,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
2008
2011
  function packageAnimations(element, event, options, animations, fnName) {
2009
2012
  var operations = groupEventedAnimations(element, event, options, animations, fnName);
2010
2013
  if (operations.length === 0) {
2011
- var a,b;
2014
+ var a, b;
2012
2015
  if (fnName === 'beforeSetClass') {
2013
2016
  a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass');
2014
2017
  b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass');
@@ -2036,11 +2039,19 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
2036
2039
  });
2037
2040
  }
2038
2041
 
2039
- runners.length ? $$AnimateRunner.all(runners, callback) : callback();
2042
+ if (runners.length) {
2043
+ $$AnimateRunner.all(runners, callback);
2044
+ } else {
2045
+ callback();
2046
+ }
2040
2047
 
2041
2048
  return function endFn(reject) {
2042
2049
  forEach(runners, function(runner) {
2043
- reject ? runner.cancel() : runner.end();
2050
+ if (reject) {
2051
+ runner.cancel();
2052
+ } else {
2053
+ runner.end();
2054
+ }
2044
2055
  });
2045
2056
  };
2046
2057
  };
@@ -2050,7 +2061,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
2050
2061
  function lookupAnimations(classes) {
2051
2062
  classes = isArray(classes) ? classes : classes.split(' ');
2052
2063
  var matches = [], flagMap = {};
2053
- for (var i=0; i < classes.length; i++) {
2064
+ for (var i = 0; i < classes.length; i++) {
2054
2065
  var klass = classes[i],
2055
2066
  animationFactory = $animateProvider.$$registeredAnimations[klass];
2056
2067
  if (animationFactory && !flagMap[klass]) {
@@ -2063,7 +2074,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
2063
2074
  }];
2064
2075
  }];
2065
2076
 
2066
- var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) {
2077
+ var $$AnimateJsDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
2067
2078
  $$animationProvider.drivers.push('$$animateJsDriver');
2068
2079
  this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) {
2069
2080
  return function initDriverFn(animationDetails) {
@@ -2125,7 +2136,7 @@ var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProv
2125
2136
 
2126
2137
  var NG_ANIMATE_ATTR_NAME = 'data-ng-animate';
2127
2138
  var NG_ANIMATE_PIN_DATA = '$ngAnimatePin';
2128
- var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2139
+ var $$AnimateQueueProvider = ['$animateProvider', /** @this */ function($animateProvider) {
2129
2140
  var PRE_DIGEST_STATE = 1;
2130
2141
  var RUNNING_STATE = 2;
2131
2142
  var ONE_SPACE = ' ';
@@ -2185,7 +2196,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2185
2196
  rules.skip.push(function(element, newAnimation, currentAnimation) {
2186
2197
  // why should we trigger a new structural animation if the element will
2187
2198
  // be removed from the DOM anyway?
2188
- return currentAnimation.event == 'leave' && newAnimation.structural;
2199
+ return currentAnimation.event === 'leave' && newAnimation.structural;
2189
2200
  });
2190
2201
 
2191
2202
  rules.skip.push(function(element, newAnimation, currentAnimation) {
@@ -2225,8 +2236,10 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2225
2236
 
2226
2237
  this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap',
2227
2238
  '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow',
2239
+ '$$isDocumentHidden',
2228
2240
  function($$rAF, $rootScope, $rootElement, $document, $$HashMap,
2229
- $$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow) {
2241
+ $$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow,
2242
+ $$isDocumentHidden) {
2230
2243
 
2231
2244
  var activeAnimationsLookup = new $$HashMap();
2232
2245
  var disabledElementsLookup = new $$HashMap();
@@ -2297,10 +2310,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2297
2310
  }
2298
2311
 
2299
2312
  // IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259.
2300
- var contains = window.Node.prototype.contains || function(arg) {
2301
- // jshint bitwise: false
2313
+ var contains = window.Node.prototype.contains || /** @this */ function(arg) {
2314
+ // eslint-disable-next-line no-bitwise
2302
2315
  return this === arg || !!(this.compareDocumentPosition(arg) & 16);
2303
- // jshint bitwise: true
2304
2316
  };
2305
2317
 
2306
2318
  function findCallbacks(parent, element, event) {
@@ -2481,7 +2493,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2481
2493
  return runner;
2482
2494
  }
2483
2495
 
2484
- var className = [node.className, options.addClass, options.removeClass].join(' ');
2496
+ var className = [node.getAttribute('class'), options.addClass, options.removeClass].join(' ');
2485
2497
  if (!isAnimatableClassName(className)) {
2486
2498
  close();
2487
2499
  return runner;
@@ -2489,7 +2501,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2489
2501
 
2490
2502
  var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0;
2491
2503
 
2492
- var documentHidden = $document[0].hidden;
2504
+ var documentHidden = $$isDocumentHidden();
2493
2505
 
2494
2506
  // this is a hard disable of all animations for the application or on
2495
2507
  // the element itself, therefore there is no need to continue further
@@ -2502,7 +2514,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2502
2514
 
2503
2515
  // there is no point in traversing the same collection of parent ancestors if a followup
2504
2516
  // animation will be run on the same element that already did all that checking work
2505
- if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state != PRE_DIGEST_STATE)) {
2517
+ if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state !== PRE_DIGEST_STATE)) {
2506
2518
  skipAnimations = !areAnimationsAllowed(element, parent, event);
2507
2519
  }
2508
2520
 
@@ -2698,7 +2710,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2698
2710
  runner.progress(event, phase, data);
2699
2711
  }
2700
2712
 
2701
- function close(reject) { // jshint ignore:line
2713
+ function close(reject) {
2702
2714
  clearGeneratedClasses(element, options);
2703
2715
  applyAnimationClasses(element, options);
2704
2716
  applyAnimationStyles(element, options);
@@ -2711,7 +2723,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2711
2723
  var node = getDomNode(element);
2712
2724
  var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']');
2713
2725
  forEach(children, function(child) {
2714
- var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME));
2726
+ var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME), 10);
2715
2727
  var animationDetails = activeAnimationsLookup.get(child);
2716
2728
  if (animationDetails) {
2717
2729
  switch (state) {
@@ -2844,7 +2856,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
2844
2856
  }];
2845
2857
  }];
2846
2858
 
2847
- var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
2859
+ /* exported $$AnimationProvider */
2860
+
2861
+ var $$AnimationProvider = ['$animateProvider', /** @this */ function($animateProvider) {
2848
2862
  var NG_ANIMATE_REF_ATTR = 'ng-animate-ref';
2849
2863
 
2850
2864
  var drivers = this.drivers = [];
@@ -3232,7 +3246,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
3232
3246
  }
3233
3247
  }
3234
3248
 
3235
- function close(rejected) { // jshint ignore:line
3249
+ function close(rejected) {
3236
3250
  element.off('$destroy', handleDestroyedElement);
3237
3251
  removeRunner(element);
3238
3252
 
@@ -3403,7 +3417,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
3403
3417
  * ## CSS-based Animations
3404
3418
  *
3405
3419
  * CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML
3406
- * and CSS code we can create an animation that will be picked up by Angular when an the underlying directive performs an operation.
3420
+ * and CSS code we can create an animation that will be picked up by Angular when an underlying directive performs an operation.
3407
3421
  *
3408
3422
  * The example below shows how an `enter` animation can be made possible on an element using `ng-if`:
3409
3423
  *
@@ -3898,7 +3912,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
3898
3912
  deps="angular-animate.js;angular-route.js"
3899
3913
  animations="true">
3900
3914
  <file name="index.html">
3901
- <a href="#/">Home</a>
3915
+ <a href="#!/">Home</a>
3902
3916
  <hr />
3903
3917
  <div class="view-container">
3904
3918
  <div ng-view class="view"></div>
@@ -3918,22 +3932,23 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
3918
3932
  }])
3919
3933
  .run(['$rootScope', function($rootScope) {
3920
3934
  $rootScope.records = [
3921
- { id:1, title: "Miss Beulah Roob" },
3922
- { id:2, title: "Trent Morissette" },
3923
- { id:3, title: "Miss Ava Pouros" },
3924
- { id:4, title: "Rod Pouros" },
3925
- { id:5, title: "Abdul Rice" },
3926
- { id:6, title: "Laurie Rutherford Sr." },
3927
- { id:7, title: "Nakia McLaughlin" },
3928
- { id:8, title: "Jordon Blanda DVM" },
3929
- { id:9, title: "Rhoda Hand" },
3930
- { id:10, title: "Alexandrea Sauer" }
3935
+ { id: 1, title: 'Miss Beulah Roob' },
3936
+ { id: 2, title: 'Trent Morissette' },
3937
+ { id: 3, title: 'Miss Ava Pouros' },
3938
+ { id: 4, title: 'Rod Pouros' },
3939
+ { id: 5, title: 'Abdul Rice' },
3940
+ { id: 6, title: 'Laurie Rutherford Sr.' },
3941
+ { id: 7, title: 'Nakia McLaughlin' },
3942
+ { id: 8, title: 'Jordon Blanda DVM' },
3943
+ { id: 9, title: 'Rhoda Hand' },
3944
+ { id: 10, title: 'Alexandrea Sauer' }
3931
3945
  ];
3932
3946
  }])
3933
3947
  .controller('HomeController', [function() {
3934
3948
  //empty
3935
3949
  }])
3936
- .controller('ProfileController', ['$rootScope', '$routeParams', function($rootScope, $routeParams) {
3950
+ .controller('ProfileController', ['$rootScope', '$routeParams',
3951
+ function ProfileController($rootScope, $routeParams) {
3937
3952
  var index = parseInt($routeParams.id, 10);
3938
3953
  var record = $rootScope.records[index - 1];
3939
3954
 
@@ -3945,7 +3960,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
3945
3960
  <h2>Welcome to the home page</h1>
3946
3961
  <p>Please click on an element</p>
3947
3962
  <a class="record"
3948
- ng-href="#/profile/{{ record.id }}"
3963
+ ng-href="#!/profile/{{ record.id }}"
3949
3964
  ng-animate-ref="{{ record.id }}"
3950
3965
  ng-repeat="record in records">
3951
3966
  {{ record.title }}