@angular-wave/angular.ts 0.4.4 → 0.4.5

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.
Files changed (120) hide show
  1. package/dist/angular-ts.esm.js +2 -2
  2. package/dist/angular-ts.umd.js +2 -12
  3. package/index.html +3 -74
  4. package/package.json +1 -1
  5. package/src/angular.spec.js +5 -0
  6. package/src/animations/animate-css.js +13 -5
  7. package/src/animations/animate-queue.js +21 -22
  8. package/src/animations/animate-runner.js +8 -4
  9. package/src/animations/animate.md +1 -1
  10. package/src/animations/animate.spec.js +21 -0
  11. package/src/animations/animation.js +1 -1
  12. package/src/binding.spec.js +1 -0
  13. package/src/core/compile/compile.js +26 -25
  14. package/src/core/compile/compile.spec.js +266 -17
  15. package/src/core/controller/controller.js +0 -2
  16. package/src/core/di/injector.md +1 -1
  17. package/src/core/di/injector.spec.js +2 -0
  18. package/src/core/di/internal-injector.js +1 -2
  19. package/src/core/interpolate/interpolate.js +3 -16
  20. package/src/core/interpolate/interpolate.spec.js +16 -70
  21. package/src/core/interval/interval-factory.js +50 -0
  22. package/src/core/interval/interval.html +18 -0
  23. package/src/core/interval/interval.js +77 -0
  24. package/src/core/interval/interval.md +123 -0
  25. package/src/core/interval/interval.spec.js +280 -0
  26. package/src/core/interval/interval.test.js +1 -1
  27. package/src/core/location/location.js +47 -39
  28. package/src/core/location/location.spec.js +27 -27
  29. package/src/core/on.spec.js +7 -0
  30. package/src/core/parse/interpreter.js +7 -10
  31. package/src/core/parse/parse.js +5 -26
  32. package/src/core/parse/parse.spec.js +91 -95
  33. package/src/core/prop.spec.js +60 -4
  34. package/src/core/q/q.html +18 -0
  35. package/src/core/q/q.js +472 -0
  36. package/src/core/q/q.md +211 -0
  37. package/src/core/q/q.spec.js +2748 -0
  38. package/src/core/q/q.test.js +12 -0
  39. package/src/core/sce/sce.spec.js +8 -0
  40. package/src/core/{model/model.html → scope/scope.html} +1 -1
  41. package/src/core/scope/scope.js +16 -15
  42. package/src/core/scope/scope.spec.js +1959 -24
  43. package/src/core/scope/scope.test.js +12 -0
  44. package/src/core/timeout/timeout.html +18 -0
  45. package/src/core/timeout/timeout.js +109 -0
  46. package/src/core/timeout/timeout.spec.js +354 -0
  47. package/src/core/timeout/timout.test.js +12 -0
  48. package/src/core/url-utils/url-utils.spec.js +1 -1
  49. package/src/directive/aria/aria.js +6 -3
  50. package/src/directive/aria/aria.spec.js +87 -0
  51. package/src/directive/attrs/attrs.spec.js +5 -0
  52. package/src/directive/attrs/boolean.spec.js +15 -0
  53. package/src/directive/attrs/element-style.spec.js +8 -0
  54. package/src/directive/attrs/src.spec.js +7 -0
  55. package/src/directive/bind/bind.spec.js +33 -0
  56. package/src/directive/bind/bing-html.spec.js +3 -0
  57. package/src/directive/class/class.js +3 -3
  58. package/src/directive/class/class.spec.js +75 -9
  59. package/src/directive/controller/controller.spec.js +13 -0
  60. package/src/directive/events/click.spec.js +3 -0
  61. package/src/directive/events/event.spec.js +6 -0
  62. package/src/directive/form/form.js +3 -2
  63. package/src/directive/form/form.spec.js +65 -0
  64. package/src/directive/if/if.spec.js +4 -0
  65. package/src/directive/include/include.spec.js +59 -8
  66. package/src/directive/init/init.js +2 -6
  67. package/src/directive/init/init.spec.js +2 -0
  68. package/src/directive/input/input.spec.js +136 -0
  69. package/src/directive/messages/messages.spec.js +35 -4
  70. package/src/directive/model/model.js +25 -18
  71. package/src/directive/model/model.spec.js +49 -2
  72. package/src/directive/model-options/model-options.spec.js +6 -0
  73. package/src/directive/non-bindable/non-bindable.spec.js +1 -0
  74. package/src/directive/observe/observe.js +1 -0
  75. package/src/directive/observe/observe.spec.js +1 -0
  76. package/src/directive/options/options.spec.js +34 -0
  77. package/src/directive/ref/href.spec.js +15 -0
  78. package/src/directive/repeat/repeat.spec.js +135 -8
  79. package/src/directive/script/script.spec.js +2 -0
  80. package/src/directive/select/select.js +3 -3
  81. package/src/directive/select/select.spec.js +96 -0
  82. package/src/directive/show-hide/show-hide.js +2 -2
  83. package/src/directive/show-hide/show-hide.spec.js +19 -8
  84. package/src/directive/style/style.spec.js +7 -0
  85. package/src/directive/switch/switch.spec.js +5 -5
  86. package/src/directive/validators/validators.spec.js +1 -0
  87. package/src/loader.js +1 -0
  88. package/src/public.js +10 -2
  89. package/src/router/common/coreservices.js +2 -0
  90. package/src/router/directives/state-directives.js +14 -6
  91. package/src/router/directives/state-directives.spec.js +83 -0
  92. package/src/router/directives/view-directive.js +13 -4
  93. package/src/router/directives/view-directive.spec.js +71 -25
  94. package/src/router/hooks/lazy-load.js +2 -2
  95. package/src/router/hooks/views.js +5 -3
  96. package/src/router/resolve/resolvable.js +6 -3
  97. package/src/router/resolve/resolve-context.js +2 -2
  98. package/src/router/state/state-service.js +4 -4
  99. package/src/router/state/state.spec.js +5 -2
  100. package/src/router/state/state.test.js +1 -1
  101. package/src/router/state/views.js +10 -7
  102. package/src/router/template-factory.js +6 -3
  103. package/src/router/template-factory.spec.js +4 -0
  104. package/src/router/transition/transition-hook.js +1 -1
  105. package/src/router/transition/transition.js +1 -1
  106. package/src/router/view-hook.spec.js +2 -2
  107. package/src/router/view-scroll.js +6 -4
  108. package/src/services/browser.js +5 -8
  109. package/src/services/http/http.js +9 -6
  110. package/src/services/http/http.spec.js +31 -30
  111. package/src/services/http/template-request.spec.js +10 -0
  112. package/src/services/http-backend/http-backend.spec.js +3 -3
  113. package/src/services/template-request.js +4 -2
  114. package/src/shared/common.js +2 -1
  115. package/types/core/location/location.d.ts +36 -31
  116. package/types/core/parse/parse.d.ts +0 -26
  117. package/types/core/scope/scope.d.ts +11 -11
  118. package/src/core/model/model.js +0 -944
  119. package/src/core/model/model.spec.js +0 -3012
  120. package/types/core/model/model.d.ts +0 -204
@@ -43,6 +43,8 @@ describe("scriptDirective", () => {
43
43
  '<script type="text/javascript">some {{binding}}</script>' +
44
44
  '<script type="text/ng-template" id="/some">other {{binding}}</script>';
45
45
  $compile(doc)($rootScope);
46
+ $rootScope.$digest();
47
+
46
48
  const scripts = doc.find("script");
47
49
  expect(scripts.eq(0)[0].text).toBe("some {{binding}}");
48
50
  expect(scripts.eq(1)[0].text).toBe("other {{binding}}");
@@ -226,7 +226,7 @@ function SelectController($element, $scope) {
226
226
  function scheduleRender() {
227
227
  if (renderScheduled) return;
228
228
  renderScheduled = true;
229
- $scope.$postUpdate(() => {
229
+ $scope.$$postDigest(() => {
230
230
  renderScheduled = false;
231
231
  self.ngModelCtrl.$render();
232
232
  });
@@ -238,7 +238,7 @@ function SelectController($element, $scope) {
238
238
 
239
239
  updateScheduled = true;
240
240
 
241
- $scope.$postUpdate(() => {
241
+ $scope.$$postDigest(() => {
242
242
  if ($scope.$$destroyed) return;
243
243
 
244
244
  updateScheduled = false;
@@ -349,7 +349,7 @@ function SelectController($element, $scope) {
349
349
  currentValue === removeValue
350
350
  ) {
351
351
  // When multiple (selected) options are destroyed at the same time, we don't want
352
- // to run a model update for each of them. Instead, run a single update in the $postUpdate
352
+ // to run a model update for each of them. Instead, run a single update in the $$postDigest
353
353
  scheduleViewValueUpdate(true);
354
354
  }
355
355
  });
@@ -19,6 +19,7 @@ describe("select", () => {
19
19
  element = formElement.find("select");
20
20
  $compile(formElement)(scope);
21
21
  ngModelCtrl = element.controller("ngModel");
22
+ scope.$digest();
22
23
  }
23
24
 
24
25
  function setSelectValue(selectElement, optionIndex) {
@@ -349,6 +350,7 @@ describe("select", () => {
349
350
  expect(scope.form.nameA.$name).toBe("nameA");
350
351
  const oldModel = scope.form.nameA;
351
352
  scope.nameID = "B";
353
+ scope.$digest();
352
354
  expect(scope.form.nameA).toBeUndefined();
353
355
  expect(scope.form.nameB).toBe(oldModel);
354
356
  expect(scope.form.nameB.$name).toBe("nameB");
@@ -396,6 +398,7 @@ describe("select", () => {
396
398
  $compile(select)(scope);
397
399
  expect(selectCtrl.writeValue).not.toHaveBeenCalled();
398
400
 
401
+ scope.$digest();
399
402
  expect(selectCtrl.writeValue).toHaveBeenCalled();
400
403
  dealoc(select);
401
404
  });
@@ -409,12 +412,16 @@ describe("select", () => {
409
412
  "</select>",
410
413
  );
411
414
 
415
+ scope.$digest();
416
+
412
417
  let options = element.find("option");
413
418
  expect(options[0].selected).toBeTrue();
414
419
  expect(options[1].selected).toBeFalse();
415
420
  expect(options[2].selected).toBeFalse();
416
421
 
417
422
  scope.selected = "a";
423
+ scope.$digest();
424
+
418
425
  options = element.find("option");
419
426
  expect(options.length).toBe(3);
420
427
  expect(options[0].selected).toBeFalse();
@@ -422,6 +429,8 @@ describe("select", () => {
422
429
  expect(options[2].selected).toBeFalse();
423
430
 
424
431
  scope.selected = "b";
432
+ scope.$digest();
433
+
425
434
  options = element.find("option");
426
435
  expect(options[0].selected).toBeFalse();
427
436
  expect(options[1].selected).toBeFalse();
@@ -429,12 +438,15 @@ describe("select", () => {
429
438
 
430
439
  // This will select the empty option
431
440
  scope.selected = null;
441
+ scope.$digest();
442
+
432
443
  expect(options[0].selected).toBeTrue();
433
444
  expect(options[1].selected).toBeFalse();
434
445
  expect(options[2].selected).toBeFalse();
435
446
 
436
447
  // This will add and select the unknown option
437
448
  scope.selected = "unmatched value";
449
+ scope.$digest();
438
450
  options = element.find("option");
439
451
 
440
452
  expect(options[0].selected).toBeTrue();
@@ -444,6 +456,7 @@ describe("select", () => {
444
456
 
445
457
  // Back to matched value
446
458
  scope.selected = "b";
459
+ scope.$digest();
447
460
  options = element.find("option");
448
461
 
449
462
  expect(options[0].selected).toBeFalse();
@@ -468,15 +481,20 @@ describe("select", () => {
468
481
  { val: "x", display: "robot x" },
469
482
  { val: "y", display: "robot y" },
470
483
  ];
484
+ scope.$digest();
485
+
471
486
  expect(element[0].value).toBe("");
472
487
 
473
488
  scope.robot = "x";
489
+ scope.$digest();
474
490
  expect(element[0].value).toBe("x");
475
491
  scope.dynamicOptions.shift();
476
492
 
493
+ scope.$digest();
477
494
  expect(element[0].value).toBe("x");
478
495
 
479
496
  scope.robot = undefined;
497
+ scope.$digest();
480
498
  expect(element[0].value).toBe(unknownValue(undefined));
481
499
  });
482
500
 
@@ -491,9 +509,11 @@ describe("select", () => {
491
509
  '<option ng-repeat="opt in dynamicOptions" value="{{opt.val}}">{{opt.display}}</option>' +
492
510
  "</select>",
493
511
  );
512
+ scope.$digest();
494
513
  expect(element[0].value).toBe(unknownValue("x"));
495
514
 
496
515
  scope.robot = undefined;
516
+ scope.$digest();
497
517
  expect(element.find("option").eq(0)[0].selected).toBe(true);
498
518
  expect(element.find("option").eq(0).text()).toBe("--static-select--");
499
519
 
@@ -502,9 +522,11 @@ describe("select", () => {
502
522
  { val: "x", display: "robot x" },
503
523
  { val: "y", display: "robot y" },
504
524
  ];
525
+ scope.$digest();
505
526
  expect(element[0].value).toBe("");
506
527
 
507
528
  scope.dynamicOptions = [];
529
+ scope.$digest();
508
530
  expect(element[0].value).toBe("");
509
531
  });
510
532
 
@@ -561,6 +583,8 @@ describe("select", () => {
561
583
  expect(element[0].value).toBe(unknownValue("other"));
562
584
 
563
585
  scope.robot = undefined;
586
+ scope.$digest();
587
+
564
588
  expect(element[0].value).toBe("");
565
589
  });
566
590
 
@@ -647,6 +671,8 @@ describe("select", () => {
647
671
  "</select>",
648
672
  );
649
673
 
674
+ scope.$digest();
675
+
650
676
  let options = element.find("option");
651
677
  expect(options.length).toBe(3);
652
678
  expect(options[0].selected).toBeTrue();
@@ -654,6 +680,8 @@ describe("select", () => {
654
680
  expect(options[2].selected).toBeFalse();
655
681
 
656
682
  scope.selected = "a";
683
+ scope.$digest();
684
+
657
685
  options = element.find("option");
658
686
  expect(options.length).toBe(3);
659
687
  expect(options[0].selected).toBeFalse();
@@ -661,6 +689,8 @@ describe("select", () => {
661
689
  expect(options[2].selected).toBeFalse();
662
690
 
663
691
  scope.selected = "no match";
692
+ scope.$digest();
693
+
664
694
  options = element.find("option");
665
695
  expect(options[0].selected).toBeTrue();
666
696
  expect(options[1].selected).toBeFalse();
@@ -900,6 +930,7 @@ describe("select", () => {
900
930
  ];
901
931
  scope.empty = true;
902
932
 
933
+ scope.$digest();
903
934
  expect(element[0].value).toBe("");
904
935
  expect(selectCtrl.$hasEmptyOption()).toBe(true);
905
936
  expect(selectCtrl.$isEmptyOptionSelected()).toBe(true);
@@ -1404,12 +1435,14 @@ describe("select", () => {
1404
1435
  "</select>",
1405
1436
  );
1406
1437
 
1438
+ scope.$digest();
1407
1439
  expect(scope.selected).toBeUndefined();
1408
1440
 
1409
1441
  setSelectValue(element, 0);
1410
1442
  expect(scope.selected).toBe("option1");
1411
1443
 
1412
1444
  scope.selected = "option2";
1445
+ scope.$digest();
1413
1446
  expect(element.find("option").eq(1)[0].selected).toBe(true);
1414
1447
  expect(element.find("option").eq(1).text()).toBe("Option 2");
1415
1448
  });
@@ -1428,12 +1461,15 @@ describe("select", () => {
1428
1461
  const selectCtrl = element.controller("select");
1429
1462
  spyOn(selectCtrl, "removeOption").and.callThrough();
1430
1463
 
1464
+ scope.$digest();
1431
1465
  expect(scope.selected).toBeUndefined();
1432
1466
  expect(selectCtrl.removeOption).not.toHaveBeenCalled();
1433
1467
 
1434
1468
  // Change value of option2
1435
1469
  scope.option2 = "option2Changed";
1436
1470
  scope.selected = "option2Changed";
1471
+ scope.$digest();
1472
+
1437
1473
  expect(selectCtrl.removeOption).toHaveBeenCalledWith("");
1438
1474
  expect(element.find("option").eq(1)[0].selected).toBe(true);
1439
1475
  expect(element.find("option").eq(1).text()).toBe("Option 2");
@@ -1450,12 +1486,14 @@ describe("select", () => {
1450
1486
  "</select>",
1451
1487
  );
1452
1488
 
1489
+ scope.$digest();
1453
1490
  expect(scope.selected).toBeUndefined();
1454
1491
 
1455
1492
  setSelectValue(element, 0);
1456
1493
  expect(scope.selected).toBe("Option 1");
1457
1494
 
1458
1495
  scope.selected = "Option 2";
1496
+ scope.$digest();
1459
1497
  expect(element.find("option").eq(1)[0].selected).toBe(true);
1460
1498
  expect(element.find("option").eq(1).text()).toBe("Option 2");
1461
1499
  });
@@ -1474,12 +1512,15 @@ describe("select", () => {
1474
1512
  const selectCtrl = element.controller("select");
1475
1513
  spyOn(selectCtrl, "removeOption").and.callThrough();
1476
1514
 
1515
+ scope.$digest();
1477
1516
  expect(scope.selected).toBeUndefined();
1478
1517
  expect(selectCtrl.removeOption).not.toHaveBeenCalled();
1479
1518
 
1480
1519
  // Change value of option2
1481
1520
  scope.option2 = "Option 2 Changed";
1482
1521
  scope.selected = "Option 2 Changed";
1522
+ scope.$digest();
1523
+
1483
1524
  expect(selectCtrl.removeOption).toHaveBeenCalledWith("");
1484
1525
  expect(element.find("option").eq(1)[0].selected).toBe(true);
1485
1526
  expect(element.find("option").eq(1).text()).toBe("Option 2 Changed");
@@ -1494,6 +1535,7 @@ describe("select", () => {
1494
1535
  )($rootScope);
1495
1536
 
1496
1537
  $rootScope.foo = "success";
1538
+ $rootScope.$digest();
1497
1539
  expect(element.find("span").text()).toBe("success");
1498
1540
  dealoc(element);
1499
1541
  });
@@ -1532,13 +1574,18 @@ describe("select", () => {
1532
1574
  "</select>",
1533
1575
  );
1534
1576
 
1577
+ scope.$digest();
1535
1578
  expect(element.find("option").eq(0).val()).toBe("? string:NOMATCH ?");
1536
1579
 
1537
1580
  scope.selected = prop;
1581
+ scope.$digest();
1582
+
1538
1583
  expect(element.find("option").eq(0).val()).toBe(hashKey(prop));
1539
1584
 
1540
1585
  // Reset
1541
1586
  scope.selected = false;
1587
+ scope.$digest();
1588
+
1542
1589
  expect(element.find("option").eq(0).val()).toBe("? boolean:false ?");
1543
1590
 
1544
1591
  setSelectValue(element, 0);
@@ -1575,14 +1622,19 @@ describe("select", () => {
1575
1622
  const selectController = element.controller("select");
1576
1623
  spyOn(selectController, "removeOption").and.callThrough();
1577
1624
 
1625
+ scope.$digest();
1578
1626
  expect(selectController.removeOption).not.toHaveBeenCalled();
1579
1627
  expect(element.find("option").eq(0).val()).toBe("? string:NOMATCH ?");
1580
1628
 
1581
1629
  scope.selected = prop;
1630
+ scope.$digest();
1631
+
1582
1632
  expect(element.find("option").eq(0).val()).toBe(hashKey(prop));
1583
1633
  expect(element[0].selectedIndex).toBe(0);
1584
1634
 
1585
1635
  scope.option = "UPDATEDVALUE";
1636
+ scope.$digest();
1637
+
1586
1638
  expect(selectController.removeOption.calls.count()).toBe(1);
1587
1639
 
1588
1640
  // Updating the option value currently does not update the select model
@@ -1605,6 +1657,8 @@ describe("select", () => {
1605
1657
  );
1606
1658
 
1607
1659
  scope.selected = "UPDATEDVALUE";
1660
+ scope.$digest();
1661
+
1608
1662
  expect(element[0].selectedIndex).toBe(0);
1609
1663
  expect(element.find("option").eq(0).val()).toBe(
1610
1664
  "string:UPDATEDVALUE",
@@ -1627,6 +1681,8 @@ describe("select", () => {
1627
1681
  });
1628
1682
 
1629
1683
  scope.option = "init";
1684
+ scope.$digest();
1685
+
1630
1686
  expect(log[0]).toBe("init");
1631
1687
  expect(element.find("option").eq(1).val()).toBe("string:init");
1632
1688
 
@@ -1696,6 +1752,8 @@ describe("select", () => {
1696
1752
  "</select>",
1697
1753
  );
1698
1754
 
1755
+ scope.$digest();
1756
+
1699
1757
  expect(
1700
1758
  Object.values(element[0].childNodes)
1701
1759
  .map((x) => x.value)
@@ -1712,6 +1770,8 @@ describe("select", () => {
1712
1770
  );
1713
1771
 
1714
1772
  scope.selected = ["string", 1];
1773
+ scope.$digest();
1774
+
1715
1775
  expect(element.find("option").eq(0)[0].selected).toBe(true);
1716
1776
  expect(element.find("option").eq(2)[0].selected).toBe(true);
1717
1777
 
@@ -1781,6 +1841,8 @@ describe("select", () => {
1781
1841
  expect(scope.obj.value).toBe(prop === "ngValue" ? A : "A");
1782
1842
 
1783
1843
  scope.options.shift();
1844
+ scope.$digest();
1845
+
1784
1846
  optionElements = element.find("option");
1785
1847
  expect(optionElements.length).toEqual(3);
1786
1848
  expect(scope.obj.value).toBe(null);
@@ -1823,6 +1885,8 @@ describe("select", () => {
1823
1885
  expect(scope.obj.value).toBe("A");
1824
1886
 
1825
1887
  A.name = "X";
1888
+ scope.$digest();
1889
+
1826
1890
  optionElements = element.find("option");
1827
1891
  expect(optionElements.length).toEqual(4);
1828
1892
  expect(scope.obj.value).toBe(null);
@@ -1865,6 +1929,8 @@ describe("select", () => {
1865
1929
  expect(scope.obj.value).toBe("A");
1866
1930
 
1867
1931
  A.disabled = true;
1932
+ scope.$digest();
1933
+
1868
1934
  optionElements = element.find("option");
1869
1935
  expect(optionElements.length).toEqual(4);
1870
1936
  expect(scope.obj.value).toBe(null);
@@ -1903,11 +1969,15 @@ describe("select", () => {
1903
1969
  expect(optionElements[0].value).toEqual(unknownValue(undefined));
1904
1970
 
1905
1971
  B.disabled = true;
1972
+ scope.$digest();
1973
+
1906
1974
  optionElements = element.find("option");
1907
1975
  expect(optionElements.length).toEqual(4);
1908
1976
  expect(optionElements[0].value).toEqual(unknownValue(undefined));
1909
1977
 
1910
1978
  scope.obj.value = "B";
1979
+ scope.$digest();
1980
+
1911
1981
  optionElements = element.find("option");
1912
1982
  expect(optionElements.length).toEqual(3);
1913
1983
  expect(scope.obj.value).toBe("B");
@@ -1953,12 +2023,16 @@ describe("select", () => {
1953
2023
  expect(scope.obj.value).toBe("A");
1954
2024
 
1955
2025
  A.disabled = true;
2026
+ scope.$digest();
2027
+
1956
2028
  optionElements = element.find("option");
1957
2029
  expect(optionElements.length).toEqual(4);
1958
2030
  expect(scope.obj.value).toBe(null);
1959
2031
  expect(element.val()).toBe("? object:null ?");
1960
2032
 
1961
2033
  A.disabled = false;
2034
+ scope.$digest();
2035
+
1962
2036
  optionElements = element.find("option");
1963
2037
  expect(optionElements.length).toEqual(4);
1964
2038
  expect(scope.obj.value).toBe(null);
@@ -1998,6 +2072,8 @@ describe("select", () => {
1998
2072
  expect(optionElements.length).toEqual(3);
1999
2073
 
2000
2074
  scope.options.push(C);
2075
+ scope.$digest();
2076
+
2001
2077
  optionElements = element.find("option");
2002
2078
  expect(optionElements.length).toEqual(3);
2003
2079
  expect(optionElements[2].selected).toBe(true);
@@ -2036,6 +2112,8 @@ describe("select", () => {
2036
2112
  expect(optionElements.length).toEqual(3);
2037
2113
 
2038
2114
  scope.obj.value = "C";
2115
+ scope.$digest();
2116
+
2039
2117
  optionElements = element.find("option");
2040
2118
  expect(element.val()).toBe(prop === "ngValue" ? "string:C" : "C");
2041
2119
  expect(optionElements.length).toEqual(3);
@@ -2043,6 +2121,8 @@ describe("select", () => {
2043
2121
  expect(scope.obj.value).toBe("C");
2044
2122
 
2045
2123
  scope.options = [{ name: "A" }, { name: "B" }, { name: "C" }];
2124
+ scope.$digest();
2125
+
2046
2126
  optionElements = element.find("option");
2047
2127
  expect(element.val()).toBe(prop === "ngValue" ? "string:C" : "C");
2048
2128
  expect(optionElements.length).toEqual(3);
@@ -2101,6 +2181,8 @@ describe("select", () => {
2101
2181
  ngModelCtrlSpy.calls.reset();
2102
2182
  scope.options.shift();
2103
2183
  scope.options.pop();
2184
+ scope.$digest();
2185
+
2104
2186
  optionElements = element.find("option");
2105
2187
  expect(optionElements.length).toEqual(1);
2106
2188
  expect(scope.obj.value).toEqual([]);
@@ -2164,6 +2246,8 @@ describe("select", () => {
2164
2246
  ngModelCtrlSpy.calls.reset();
2165
2247
  A.name = "X";
2166
2248
  C.name = "Z";
2249
+ scope.$digest();
2250
+
2167
2251
  optionElements = element.find("option");
2168
2252
  expect(optionElements.length).toEqual(3);
2169
2253
  expect(scope.obj.value).toEqual([]);
@@ -2229,6 +2313,8 @@ describe("select", () => {
2229
2313
  ngModelCtrlSpy.calls.reset();
2230
2314
  A.disabled = true;
2231
2315
  C.disabled = true;
2316
+ scope.$digest();
2317
+
2232
2318
  optionElements = element.find("option");
2233
2319
  expect(optionElements.length).toEqual(4);
2234
2320
  expect(scope.obj.value).toEqual(["D"]);
@@ -2274,11 +2360,15 @@ describe("select", () => {
2274
2360
 
2275
2361
  A.disabled = true;
2276
2362
  D.disabled = true;
2363
+ scope.$digest();
2364
+
2277
2365
  optionElements = element.find("option");
2278
2366
  expect(optionElements.length).toEqual(4);
2279
2367
  expect(element[0].value).toBe("");
2280
2368
 
2281
2369
  scope.obj.value = prop === "ngValue" ? [A, C, D] : ["A", "C", "D"];
2370
+ scope.$digest();
2371
+
2282
2372
  optionElements = element.find("option");
2283
2373
  expect(optionElements.length).toEqual(4);
2284
2374
  expect(optionElements.eq(0)[0].selected).toBe(true);
@@ -2322,6 +2412,8 @@ describe("select", () => {
2322
2412
  expect(optionElements.eq(1)[0].selected).toBe(true);
2323
2413
 
2324
2414
  scope.options.push(C);
2415
+ scope.$digest();
2416
+
2325
2417
  optionElements = element.find("option");
2326
2418
 
2327
2419
  expect(optionElements.length).toEqual(3);
@@ -2364,6 +2456,8 @@ describe("select", () => {
2364
2456
  expect(optionElements.length).toEqual(3);
2365
2457
 
2366
2458
  scope.obj.value = ["B", "C"];
2459
+ scope.$digest();
2460
+
2367
2461
  optionElements = element.find("option");
2368
2462
 
2369
2463
  expect(optionElements.length).toEqual(3);
@@ -2372,6 +2466,8 @@ describe("select", () => {
2372
2466
  expect(scope.obj.value).toEqual(["B", "C"]);
2373
2467
 
2374
2468
  scope.options = [{ name: "A" }, { name: "B" }, { name: "C" }];
2469
+ scope.$digest();
2470
+
2375
2471
  optionElements = element.find("option");
2376
2472
 
2377
2473
  expect(optionElements.length).toEqual(3);
@@ -22,7 +22,7 @@ export function ngShowDirective($animate) {
22
22
  tempClasses: NG_HIDE_IN_PROGRESS_CLASS,
23
23
  });
24
24
  } else {
25
- scope.$postUpdate(() => {
25
+ scope.$$postDigest(() => {
26
26
  if (value) {
27
27
  element
28
28
  .elements()
@@ -56,7 +56,7 @@ export function ngHideDirective($animate) {
56
56
  tempClasses: NG_HIDE_IN_PROGRESS_CLASS,
57
57
  });
58
58
  } else {
59
- scope.$postUpdate(() => {
59
+ scope.$$postDigest(() => {
60
60
  if (value) {
61
61
  element
62
62
  .elements()
@@ -24,8 +24,10 @@ describe("ngShow / ngHide", () => {
24
24
  it("should show and hide an element", () => {
25
25
  element = JQLite('<div ng-show="exp"></div>');
26
26
  element = $compile(element)($scope);
27
+ $scope.$digest();
27
28
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
28
29
  $scope.exp = true;
30
+ $scope.$digest();
29
31
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
30
32
  });
31
33
 
@@ -34,6 +36,7 @@ describe("ngShow / ngHide", () => {
34
36
  element = JQLite('<div ng-show="exp"></div>');
35
37
  element = $compile(element)($scope);
36
38
  $scope.exp = function () {};
39
+ $scope.$digest();
37
40
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
38
41
  });
39
42
 
@@ -42,6 +45,7 @@ describe("ngShow / ngHide", () => {
42
45
  element = $compile(element)($scope);
43
46
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
44
47
  $scope.exp = true;
48
+ $scope.$digest();
45
49
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
46
50
  });
47
51
 
@@ -49,6 +53,7 @@ describe("ngShow / ngHide", () => {
49
53
  ["false", "undefined", "null", "NaN", "''", "0"].forEach((x) => {
50
54
  element = JQLite(`<div ng-show="${x}"></div>`);
51
55
  element = $compile(element)($scope);
56
+ $scope.$digest();
52
57
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
53
58
  });
54
59
  });
@@ -57,6 +62,7 @@ describe("ngShow / ngHide", () => {
57
62
  ["'f'", "'0'", "'false'", "'no'", "'n'", "'[]'"].forEach((x) => {
58
63
  element = JQLite(`<div ng-show="${x}"></div>`);
59
64
  element = $compile(element)($scope);
65
+ $scope.$digest();
60
66
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
61
67
  });
62
68
  });
@@ -65,6 +71,7 @@ describe("ngShow / ngHide", () => {
65
71
  ["[]", "{}"].forEach((x) => {
66
72
  element = JQLite(`<div ng-show="${x}"></div>`);
67
73
  element = $compile(element)($scope);
74
+ $scope.$digest();
68
75
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
69
76
  });
70
77
  });
@@ -76,6 +83,7 @@ describe("ngShow / ngHide", () => {
76
83
  element = $compile(element)($scope);
77
84
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
78
85
  $scope.exp = true;
86
+ $scope.$digest();
79
87
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
80
88
  });
81
89
 
@@ -83,6 +91,7 @@ describe("ngShow / ngHide", () => {
83
91
  ["false", "undefined", "null", "NaN", "''", "0"].forEach((x) => {
84
92
  element = JQLite(`<div ng-hide="${x}"></div>`);
85
93
  element = $compile(element)($scope);
94
+ $scope.$digest();
86
95
  expect(element[0].classList.contains("ng-hide")).toBeFalse();
87
96
  });
88
97
  });
@@ -91,6 +100,7 @@ describe("ngShow / ngHide", () => {
91
100
  ["'f'", "'0'", "'false'", "'no'", "'n'", "'[]'"].forEach((x) => {
92
101
  element = JQLite(`<div ng-hide="${x}"></div>`);
93
102
  element = $compile(element)($scope);
103
+ $scope.$digest();
94
104
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
95
105
  });
96
106
  });
@@ -99,6 +109,7 @@ describe("ngShow / ngHide", () => {
99
109
  ["[]", "{}"].forEach((x) => {
100
110
  element = JQLite(`<div ng-hide="${x}"></div>`);
101
111
  element = $compile(element)($scope);
112
+ $scope.$digest();
102
113
  expect(element[0].classList.contains("ng-hide")).toBeTrue();
103
114
  });
104
115
  });
@@ -149,7 +160,7 @@ describe("ngShow / ngHide", () => {
149
160
  // const $scope = $rootScope.$new();
150
161
  // $scope.on = true;
151
162
  // element = $compile(html('<div ng-show="on">data</div>'))($scope);
152
- // ;
163
+ // $scope.$digest();
153
164
 
154
165
  // item = $animate.queue.shift();
155
166
  // expect(item.event).toBe("removeClass");
@@ -157,7 +168,7 @@ describe("ngShow / ngHide", () => {
157
168
  // expect(item.element).toBeShown();
158
169
 
159
170
  // $scope.on = false;
160
- // ;
171
+ // $scope.$digest();
161
172
 
162
173
  // item = $animate.queue.shift();
163
174
  // expect(item.event).toBe("addClass");
@@ -176,14 +187,14 @@ describe("ngShow / ngHide", () => {
176
187
  // element = $compile(
177
188
  // html('<div class="show-hide" ng-show="on">data</div>'),
178
189
  // )($scope);
179
- // ;
190
+ // $scope.$digest();
180
191
 
181
192
  // item = $animate.queue.shift();
182
193
  // expect(item.event).toEqual("addClass");
183
194
  // expect(item.options.tempClasses).toEqual("ng-hide-animate");
184
195
 
185
196
  // $scope.on = true;
186
- // ;
197
+ // $scope.$digest();
187
198
  // item = $animate.queue.shift();
188
199
  // expect(item.event).toEqual("removeClass");
189
200
  // expect(item.options.tempClasses).toEqual("ng-hide-animate");
@@ -200,7 +211,7 @@ describe("ngShow / ngHide", () => {
200
211
  // const $scope = $rootScope.$new();
201
212
  // $scope.off = true;
202
213
  // element = $compile(html('<div ng-hide="off">datum</div>'))($scope);
203
- // ;
214
+ // $scope.$digest();
204
215
 
205
216
  // item = $animate.queue.shift();
206
217
  // expect(item.event).toBe("addClass");
@@ -208,7 +219,7 @@ describe("ngShow / ngHide", () => {
208
219
  // expect(item.element).toBeHidden();
209
220
 
210
221
  // $scope.off = false;
211
- // ;
222
+ // $scope.$digest();
212
223
 
213
224
  // item = $animate.queue.shift();
214
225
  // expect(item.event).toBe("removeClass");
@@ -227,14 +238,14 @@ describe("ngShow / ngHide", () => {
227
238
  // element = $compile(
228
239
  // html('<div class="show-hide" ng-hide="on">data</div>'),
229
240
  // )($scope);
230
- // ;
241
+ // $scope.$digest();
231
242
 
232
243
  // item = $animate.queue.shift();
233
244
  // expect(item.event).toEqual("removeClass");
234
245
  // expect(item.options.tempClasses).toEqual("ng-hide-animate");
235
246
 
236
247
  // $scope.on = true;
237
- // ;
248
+ // $scope.$digest();
238
249
  // item = $animate.queue.shift();
239
250
  // expect(item.event).toEqual("addClass");
240
251
  // expect(item.options.tempClasses).toEqual("ng-hide-animate");