angularjs-rails 1.5.8 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
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 }}