@angular-wave/angular.ts 0.4.4 → 0.4.6
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.
- package/Makefile +1 -0
- package/dist/angular-ts.esm.js +2 -2
- package/dist/angular-ts.umd.js +2 -12
- package/index.html +3 -74
- package/package.json +1 -1
- package/src/angular.spec.js +5 -0
- package/src/animations/animate-css.js +13 -5
- package/src/animations/animate-queue.js +21 -22
- package/src/animations/animate-runner.js +8 -4
- package/src/animations/animate.md +1 -1
- package/src/animations/animate.spec.js +21 -0
- package/src/animations/animation.js +1 -1
- package/src/binding.spec.js +1 -0
- package/src/core/compile/compile.js +25 -27
- package/src/core/compile/compile.spec.js +266 -17
- package/src/core/controller/controller.js +0 -2
- package/src/core/di/injector.md +1 -1
- package/src/core/di/injector.spec.js +2 -0
- package/src/core/di/internal-injector.js +1 -2
- package/src/core/interpolate/interpolate.js +12 -28
- package/src/core/interpolate/interpolate.spec.js +16 -70
- package/src/core/interval/interval-factory.js +50 -0
- package/src/core/interval/interval.html +18 -0
- package/src/core/interval/interval.js +77 -0
- package/src/core/interval/interval.md +123 -0
- package/src/core/interval/interval.spec.js +280 -0
- package/src/core/interval/interval.test.js +1 -1
- package/src/core/location/location.js +53 -59
- package/src/core/location/location.spec.js +27 -27
- package/src/core/on.spec.js +7 -0
- package/src/core/parse/interpreter.js +7 -10
- package/src/core/parse/parse.js +5 -26
- package/src/core/parse/parse.spec.js +91 -95
- package/src/core/prop.spec.js +60 -4
- package/src/core/q/q.html +18 -0
- package/src/core/q/q.js +472 -0
- package/src/core/q/q.md +211 -0
- package/src/core/q/q.spec.js +2748 -0
- package/src/core/q/q.test.js +12 -0
- package/src/core/sce/sce.spec.js +8 -0
- package/src/core/{model/model.html → scope/scope.html} +1 -1
- package/src/core/scope/scope.js +16 -15
- package/src/core/scope/scope.spec.js +1959 -24
- package/src/core/scope/scope.test.js +12 -0
- package/src/core/timeout/timeout.html +18 -0
- package/src/core/timeout/timeout.js +109 -0
- package/src/core/timeout/timeout.spec.js +354 -0
- package/src/core/timeout/timout.test.js +12 -0
- package/src/core/url-utils/url-utils.spec.js +1 -1
- package/src/directive/aria/aria.js +6 -3
- package/src/directive/aria/aria.spec.js +87 -0
- package/src/directive/attrs/attrs.spec.js +5 -0
- package/src/directive/attrs/boolean.spec.js +15 -0
- package/src/directive/attrs/element-style.spec.js +8 -0
- package/src/directive/attrs/src.spec.js +7 -0
- package/src/directive/bind/bind.spec.js +33 -0
- package/src/directive/bind/bing-html.spec.js +3 -0
- package/src/directive/class/class.js +3 -3
- package/src/directive/class/class.spec.js +75 -9
- package/src/directive/controller/controller.spec.js +13 -0
- package/src/directive/events/click.spec.js +3 -0
- package/src/directive/events/event.spec.js +6 -0
- package/src/directive/events/events.html +1 -0
- package/src/directive/form/form.js +3 -2
- package/src/directive/form/form.spec.js +65 -0
- package/src/directive/if/if.spec.js +4 -0
- package/src/directive/include/include.spec.js +59 -8
- package/src/directive/init/init.js +2 -6
- package/src/directive/init/init.spec.js +2 -0
- package/src/directive/input/input.spec.js +136 -0
- package/src/directive/messages/messages.spec.js +35 -4
- package/src/directive/model/model.js +25 -18
- package/src/directive/model/model.spec.js +49 -2
- package/src/directive/model-options/model-options.spec.js +6 -0
- package/src/directive/non-bindable/non-bindable.spec.js +1 -0
- package/src/directive/observe/observe.js +5 -1
- package/src/directive/observe/observe.spec.js +22 -0
- package/src/directive/observe/test.html +3 -11
- package/src/directive/options/options.spec.js +34 -0
- package/src/directive/ref/href.spec.js +15 -0
- package/src/directive/repeat/repeat.spec.js +135 -8
- package/src/directive/script/script.spec.js +2 -0
- package/src/directive/select/select.js +3 -3
- package/src/directive/select/select.spec.js +96 -0
- package/src/directive/show-hide/show-hide.js +2 -2
- package/src/directive/show-hide/show-hide.spec.js +19 -8
- package/src/directive/style/style.spec.js +7 -0
- package/src/directive/switch/switch.spec.js +5 -5
- package/src/directive/validators/validators.spec.js +1 -0
- package/src/loader.js +1 -0
- package/src/public.js +10 -2
- package/src/router/common/coreservices.js +2 -0
- package/src/router/directives/state-directives.js +14 -6
- package/src/router/directives/state-directives.spec.js +83 -0
- package/src/router/directives/view-directive.js +13 -4
- package/src/router/directives/view-directive.spec.js +71 -25
- package/src/router/hooks/lazy-load.js +2 -2
- package/src/router/hooks/views.js +5 -3
- package/src/router/resolve/resolvable.js +6 -3
- package/src/router/resolve/resolve-context.js +2 -2
- package/src/router/state/state-service.js +4 -4
- package/src/router/state/state.spec.js +5 -2
- package/src/router/state/state.test.js +1 -1
- package/src/router/state/views.js +10 -7
- package/src/router/template-factory.js +6 -3
- package/src/router/template-factory.spec.js +4 -0
- package/src/router/transition/transition-hook.js +1 -1
- package/src/router/transition/transition.js +1 -1
- package/src/router/view-hook.spec.js +2 -2
- package/src/router/view-scroll.js +6 -4
- package/src/services/browser.js +5 -8
- package/src/services/http/http.js +9 -6
- package/src/services/http/http.spec.js +31 -30
- package/src/services/http/template-request.spec.js +10 -0
- package/src/services/http-backend/http-backend.spec.js +3 -3
- package/src/services/template-request.js +4 -2
- package/src/shared/common.js +2 -1
- package/types/core/location/location.d.ts +37 -34
- package/types/core/parse/parse.d.ts +0 -26
- package/types/core/scope/scope.d.ts +11 -11
- package/src/core/model/model.js +0 -944
- package/src/core/model/model.spec.js +0 -3012
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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");
|