@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.
- 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 +26 -25
- 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 +3 -16
- 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 +47 -39
- 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/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 +1 -0
- package/src/directive/observe/observe.spec.js +1 -0
- 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 +36 -31
- 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
|
@@ -55,18 +55,21 @@ describe("ngRepeat", () => {
|
|
|
55
55
|
Array.prototype.extraProperty = "should be ignored";
|
|
56
56
|
// INIT
|
|
57
57
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
58
|
+
scope.$digest();
|
|
58
59
|
expect(element.find("li").length).toEqual(2);
|
|
59
60
|
expect(element.text()).toEqual("misko;shyam;");
|
|
60
61
|
delete Array.prototype.extraProperty;
|
|
61
62
|
|
|
62
63
|
// GROW
|
|
63
64
|
scope.items.push({ name: "adam" });
|
|
65
|
+
scope.$digest();
|
|
64
66
|
expect(element.find("li").length).toEqual(3);
|
|
65
67
|
expect(element.text()).toEqual("misko;shyam;adam;");
|
|
66
68
|
|
|
67
69
|
// // SHRINK
|
|
68
70
|
scope.items.pop();
|
|
69
71
|
scope.items.shift();
|
|
72
|
+
scope.$digest();
|
|
70
73
|
expect(element.find("li").length).toEqual(1);
|
|
71
74
|
expect(element.text()).toEqual("shyam;");
|
|
72
75
|
});
|
|
@@ -76,10 +79,14 @@ describe("ngRepeat", () => {
|
|
|
76
79
|
"<ul>" + '<li ng-repeat="item in ::items">{{item.name}};</li>' + "</ul>",
|
|
77
80
|
)(scope);
|
|
78
81
|
|
|
82
|
+
scope.$digest();
|
|
83
|
+
|
|
79
84
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
85
|
+
scope.$digest();
|
|
80
86
|
expect(element.find("li").length).toEqual(2);
|
|
81
87
|
expect(element.text()).toEqual("misko;shyam;");
|
|
82
88
|
scope.items.push({ name: "adam" });
|
|
89
|
+
scope.$digest();
|
|
83
90
|
expect(element.find("li").length).toEqual(2);
|
|
84
91
|
expect(element.text()).toEqual("misko;shyam;");
|
|
85
92
|
});
|
|
@@ -89,10 +96,14 @@ describe("ngRepeat", () => {
|
|
|
89
96
|
"<ul>" + '<li ng-repeat="item in items">{{::item.name}};</li>' + "</ul>",
|
|
90
97
|
)(scope);
|
|
91
98
|
|
|
99
|
+
scope.$digest();
|
|
100
|
+
|
|
92
101
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
102
|
+
scope.$digest();
|
|
93
103
|
expect(element.find("li").length).toEqual(2);
|
|
94
104
|
expect(element.text()).toEqual("misko;shyam;");
|
|
95
105
|
scope.items.push({ name: "adam" });
|
|
106
|
+
scope.$digest();
|
|
96
107
|
expect(element.find("li").length).toEqual(3);
|
|
97
108
|
expect(element.text()).toEqual("misko;shyam;adam;");
|
|
98
109
|
});
|
|
@@ -109,6 +120,7 @@ describe("ngRepeat", () => {
|
|
|
109
120
|
|
|
110
121
|
const htmlCollection = document.getElementsByClassName("test");
|
|
111
122
|
scope.items = htmlCollection;
|
|
123
|
+
scope.$digest();
|
|
112
124
|
expect(element.find("li").length).toEqual(3);
|
|
113
125
|
expect(element.text()).toEqual("x;y;x;");
|
|
114
126
|
|
|
@@ -131,6 +143,7 @@ describe("ngRepeat", () => {
|
|
|
131
143
|
)(scope);
|
|
132
144
|
|
|
133
145
|
scope.items = collection;
|
|
146
|
+
scope.$digest();
|
|
134
147
|
expect(element.find("li").length).toEqual(3);
|
|
135
148
|
expect(element.text()).toEqual("x;y;z;");
|
|
136
149
|
});
|
|
@@ -142,6 +155,7 @@ describe("ngRepeat", () => {
|
|
|
142
155
|
"</ul>",
|
|
143
156
|
)(scope);
|
|
144
157
|
scope.items = { misko: "swe", shyam: "set" };
|
|
158
|
+
scope.$digest();
|
|
145
159
|
expect(element.text()).toEqual("misko:swe|shyam:set|");
|
|
146
160
|
});
|
|
147
161
|
|
|
@@ -152,6 +166,7 @@ describe("ngRepeat", () => {
|
|
|
152
166
|
"</ul>",
|
|
153
167
|
)(scope);
|
|
154
168
|
scope.items = { me: "swe", you: "set" };
|
|
169
|
+
scope.$digest();
|
|
155
170
|
expect(element.text()).toEqual("me:swe|you:set|");
|
|
156
171
|
});
|
|
157
172
|
|
|
@@ -168,6 +183,7 @@ describe("ngRepeat", () => {
|
|
|
168
183
|
dogname: "Bingo",
|
|
169
184
|
codename: "20",
|
|
170
185
|
};
|
|
186
|
+
scope.$digest();
|
|
171
187
|
expect(element.text()).toEqual(
|
|
172
188
|
"age:20|wealth:20|prodname:Bingo|dogname:Bingo|codename:20|",
|
|
173
189
|
);
|
|
@@ -185,9 +201,11 @@ describe("ngRepeat", () => {
|
|
|
185
201
|
items.shyam = "set";
|
|
186
202
|
|
|
187
203
|
scope.items = items;
|
|
204
|
+
scope.$digest();
|
|
188
205
|
expect(element.text()).toEqual("misko:swe|shyam:set|");
|
|
189
206
|
|
|
190
207
|
delete items.shyam;
|
|
208
|
+
scope.$digest();
|
|
191
209
|
expect(element.text()).toEqual("misko:swe|");
|
|
192
210
|
});
|
|
193
211
|
|
|
@@ -199,10 +217,12 @@ describe("ngRepeat", () => {
|
|
|
199
217
|
"</ul>",
|
|
200
218
|
)(scope);
|
|
201
219
|
scope.items = [{ id: "misko" }, { id: "igor" }];
|
|
220
|
+
scope.$digest();
|
|
202
221
|
const li0 = element.find("li")[0];
|
|
203
222
|
const li1 = element.find("li")[1];
|
|
204
223
|
|
|
205
224
|
scope.items.push(scope.items.shift());
|
|
225
|
+
scope.$digest();
|
|
206
226
|
expect(element.find("li")[0]).toBe(li1);
|
|
207
227
|
expect(element.find("li")[1]).toBe(li0);
|
|
208
228
|
});
|
|
@@ -214,10 +234,12 @@ describe("ngRepeat", () => {
|
|
|
214
234
|
"</ul>",
|
|
215
235
|
)(scope);
|
|
216
236
|
scope.items = [{ name: "misko" }, { name: "igor" }];
|
|
237
|
+
scope.$digest();
|
|
217
238
|
const li0 = element.find("li")[0];
|
|
218
239
|
const li1 = element.find("li")[1];
|
|
219
240
|
|
|
220
241
|
scope.items.push(scope.items.shift());
|
|
242
|
+
scope.$digest();
|
|
221
243
|
expect(element.find("li")[0]).toBe(li1);
|
|
222
244
|
expect(element.find("li")[1]).toBe(li0);
|
|
223
245
|
});
|
|
@@ -232,6 +254,8 @@ describe("ngRepeat", () => {
|
|
|
232
254
|
"</ul>",
|
|
233
255
|
)(scope);
|
|
234
256
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
257
|
+
scope.$digest();
|
|
258
|
+
|
|
235
259
|
expect(element.find("li").text()).toBe("igor;");
|
|
236
260
|
});
|
|
237
261
|
|
|
@@ -253,12 +277,14 @@ describe("ngRepeat", () => {
|
|
|
253
277
|
{ id: 1, name: "igor" },
|
|
254
278
|
{ id: 2, name: "misko" },
|
|
255
279
|
];
|
|
280
|
+
scope.$digest();
|
|
256
281
|
expect(element.text()).toBe("igor;misko;");
|
|
257
282
|
|
|
258
283
|
const li0 = element.find("li")[0];
|
|
259
284
|
const li1 = element.find("li")[1];
|
|
260
285
|
|
|
261
286
|
scope.items.push(scope.items.shift());
|
|
287
|
+
scope.$digest();
|
|
262
288
|
expect(element.find("li")[0]).toBe(li1);
|
|
263
289
|
expect(element.find("li")[1]).toBe(li0);
|
|
264
290
|
});
|
|
@@ -273,61 +299,75 @@ describe("ngRepeat", () => {
|
|
|
273
299
|
Array.prototype.extraProperty = "should be ignored";
|
|
274
300
|
// INIT
|
|
275
301
|
scope.items = [true, true, true];
|
|
302
|
+
scope.$digest();
|
|
276
303
|
expect(element.find("li").length).toEqual(3);
|
|
277
304
|
expect(element.text()).toEqual("true;true;true;");
|
|
278
305
|
delete Array.prototype.extraProperty;
|
|
279
306
|
|
|
280
307
|
scope.items = [false, true, true];
|
|
308
|
+
scope.$digest();
|
|
281
309
|
expect(element.find("li").length).toEqual(3);
|
|
282
310
|
expect(element.text()).toEqual("false;true;true;");
|
|
283
311
|
|
|
284
312
|
scope.items = [false, true, false];
|
|
313
|
+
scope.$digest();
|
|
285
314
|
expect(element.find("li").length).toEqual(3);
|
|
286
315
|
expect(element.text()).toEqual("false;true;false;");
|
|
287
316
|
|
|
288
317
|
scope.items = [true];
|
|
318
|
+
scope.$digest();
|
|
289
319
|
expect(element.find("li").length).toEqual(1);
|
|
290
320
|
expect(element.text()).toEqual("true;");
|
|
291
321
|
|
|
292
322
|
scope.items = [true, true, false];
|
|
323
|
+
scope.$digest();
|
|
293
324
|
expect(element.find("li").length).toEqual(3);
|
|
294
325
|
expect(element.text()).toEqual("true;true;false;");
|
|
295
326
|
|
|
296
327
|
scope.items = [true, false, false];
|
|
328
|
+
scope.$digest();
|
|
297
329
|
expect(element.find("li").length).toEqual(3);
|
|
298
330
|
expect(element.text()).toEqual("true;false;false;");
|
|
299
331
|
|
|
300
332
|
// string
|
|
301
333
|
scope.items = ["a", "a", "a"];
|
|
334
|
+
scope.$digest();
|
|
302
335
|
expect(element.find("li").length).toEqual(3);
|
|
303
336
|
expect(element.text()).toEqual("a;a;a;");
|
|
304
337
|
|
|
305
338
|
scope.items = ["ab", "a", "a"];
|
|
339
|
+
scope.$digest();
|
|
306
340
|
expect(element.find("li").length).toEqual(3);
|
|
307
341
|
expect(element.text()).toEqual("ab;a;a;");
|
|
308
342
|
|
|
309
343
|
scope.items = ["test"];
|
|
344
|
+
scope.$digest();
|
|
310
345
|
expect(element.find("li").length).toEqual(1);
|
|
311
346
|
expect(element.text()).toEqual("test;");
|
|
312
347
|
|
|
313
348
|
scope.items = ["same", "value"];
|
|
349
|
+
scope.$digest();
|
|
314
350
|
expect(element.find("li").length).toEqual(2);
|
|
315
351
|
expect(element.text()).toEqual("same;value;");
|
|
316
352
|
|
|
317
353
|
// number
|
|
318
354
|
scope.items = [12, 12, 12];
|
|
355
|
+
scope.$digest();
|
|
319
356
|
expect(element.find("li").length).toEqual(3);
|
|
320
357
|
expect(element.text()).toEqual("12;12;12;");
|
|
321
358
|
|
|
322
359
|
scope.items = [53, 12, 27];
|
|
360
|
+
scope.$digest();
|
|
323
361
|
expect(element.find("li").length).toEqual(3);
|
|
324
362
|
expect(element.text()).toEqual("53;12;27;");
|
|
325
363
|
|
|
326
364
|
scope.items = [89];
|
|
365
|
+
scope.$digest();
|
|
327
366
|
expect(element.find("li").length).toEqual(1);
|
|
328
367
|
expect(element.text()).toEqual("89;");
|
|
329
368
|
|
|
330
369
|
scope.items = [89, 23];
|
|
370
|
+
scope.$digest();
|
|
331
371
|
expect(element.find("li").length).toEqual(2);
|
|
332
372
|
expect(element.text()).toEqual("89;23;");
|
|
333
373
|
});
|
|
@@ -343,6 +383,7 @@ describe("ngRepeat", () => {
|
|
|
343
383
|
)(scope);
|
|
344
384
|
document.getElementById("dummy").appendChild(element[0]);
|
|
345
385
|
scope.items = { misko: true, shyam: true, zhenbo: true };
|
|
386
|
+
scope.$digest();
|
|
346
387
|
expect(element.find("li").length).toEqual(3);
|
|
347
388
|
expect(element.text()).toEqual("misko:true;shyam:true;zhenbo:true;");
|
|
348
389
|
element.find("input").eq(0)[0].click();
|
|
@@ -365,6 +406,7 @@ describe("ngRepeat", () => {
|
|
|
365
406
|
expect(element.find("input")[2].checked).toBe(true);
|
|
366
407
|
|
|
367
408
|
scope.items = { misko: false, shyam: true, zhenbo: true };
|
|
409
|
+
scope.$digest();
|
|
368
410
|
expect(element.text()).toEqual("misko:false;shyam:true;zhenbo:true;");
|
|
369
411
|
expect(element.find("input")[0].checked).toBe(false);
|
|
370
412
|
expect(element.find("input")[1].checked).toBe(true);
|
|
@@ -383,6 +425,8 @@ describe("ngRepeat", () => {
|
|
|
383
425
|
'<li ng-repeat="(k, v) in [1, 2] track by trackBy(k, v)"></li>' +
|
|
384
426
|
"</ul>",
|
|
385
427
|
)(scope);
|
|
428
|
+
scope.$digest();
|
|
429
|
+
|
|
386
430
|
expect(scope.trackBy).toHaveBeenCalledTimes(2);
|
|
387
431
|
expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1]);
|
|
388
432
|
expect(scope.trackBy.calls.argsFor(1)).toEqual([1, 2]);
|
|
@@ -401,6 +445,8 @@ describe("ngRepeat", () => {
|
|
|
401
445
|
"</li>" +
|
|
402
446
|
"</ul>",
|
|
403
447
|
)(scope);
|
|
448
|
+
scope.$digest();
|
|
449
|
+
|
|
404
450
|
expect(scope.trackBy).toHaveBeenCalledTimes(4);
|
|
405
451
|
expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1, 0, 3]);
|
|
406
452
|
expect(scope.trackBy.calls.argsFor(1)).toEqual([0, 1, 1, 4]);
|
|
@@ -425,7 +471,11 @@ describe("ngRepeat", () => {
|
|
|
425
471
|
];
|
|
426
472
|
|
|
427
473
|
expect(scope.results).toBeUndefined();
|
|
474
|
+
scope.$digest();
|
|
475
|
+
|
|
428
476
|
scope.x = "bl";
|
|
477
|
+
scope.$digest();
|
|
478
|
+
|
|
429
479
|
expect(scope.results).toEqual([
|
|
430
480
|
{ name: "blue" },
|
|
431
481
|
{ name: "black" },
|
|
@@ -433,6 +483,8 @@ describe("ngRepeat", () => {
|
|
|
433
483
|
]);
|
|
434
484
|
|
|
435
485
|
scope.items = [];
|
|
486
|
+
scope.$digest();
|
|
487
|
+
|
|
436
488
|
expect(scope.results).toEqual([]);
|
|
437
489
|
});
|
|
438
490
|
|
|
@@ -447,9 +499,12 @@ describe("ngRepeat", () => {
|
|
|
447
499
|
)(scope);
|
|
448
500
|
|
|
449
501
|
scope.items = [1, 2, 3, 4, 5, 6];
|
|
502
|
+
scope.$digest();
|
|
450
503
|
expect(element.text().trim()).toEqual("123456");
|
|
451
504
|
|
|
452
505
|
scope.x = "0";
|
|
506
|
+
scope.$digest();
|
|
507
|
+
|
|
453
508
|
expect(element.text().trim()).toEqual("No results found...");
|
|
454
509
|
});
|
|
455
510
|
|
|
@@ -535,6 +590,8 @@ describe("ngRepeat", () => {
|
|
|
535
590
|
};
|
|
536
591
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
537
592
|
|
|
593
|
+
scope.$digest();
|
|
594
|
+
|
|
538
595
|
expect(element.text()).toEqual("igor/misko/");
|
|
539
596
|
});
|
|
540
597
|
|
|
@@ -549,6 +606,8 @@ describe("ngRepeat", () => {
|
|
|
549
606
|
|
|
550
607
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
551
608
|
|
|
609
|
+
scope.$digest();
|
|
610
|
+
|
|
552
611
|
expect(element.text()).toEqual("misko/");
|
|
553
612
|
});
|
|
554
613
|
|
|
@@ -564,6 +623,7 @@ describe("ngRepeat", () => {
|
|
|
564
623
|
)(scope);
|
|
565
624
|
scope.items = new Class();
|
|
566
625
|
scope.items.name = "value";
|
|
626
|
+
scope.$digest();
|
|
567
627
|
expect(element.text()).toEqual("name:value;");
|
|
568
628
|
});
|
|
569
629
|
|
|
@@ -586,6 +646,7 @@ describe("ngRepeat", () => {
|
|
|
586
646
|
"</ul>",
|
|
587
647
|
)(scope);
|
|
588
648
|
scope.items = ["misko", "shyam", "frodo"];
|
|
649
|
+
scope.$digest();
|
|
589
650
|
expect(element.text()).toEqual("misko:0|shyam:1|frodo:2|");
|
|
590
651
|
});
|
|
591
652
|
|
|
@@ -596,6 +657,7 @@ describe("ngRepeat", () => {
|
|
|
596
657
|
"</ul>",
|
|
597
658
|
)(scope);
|
|
598
659
|
scope.items = { misko: "m", shyam: "s", frodo: "f" };
|
|
660
|
+
scope.$digest();
|
|
599
661
|
expect(element.text()).toEqual("misko:m:0|shyam:s:1|frodo:f:2|");
|
|
600
662
|
});
|
|
601
663
|
|
|
@@ -606,6 +668,7 @@ describe("ngRepeat", () => {
|
|
|
606
668
|
"</ul>",
|
|
607
669
|
)(scope);
|
|
608
670
|
scope.items = { misko: "m", shyam: "s", frodo: "f", length: 0 };
|
|
671
|
+
scope.$digest();
|
|
609
672
|
expect(element.text()).toEqual(
|
|
610
673
|
"misko:m:0|shyam:s:1|frodo:f:2|length:0:3|",
|
|
611
674
|
);
|
|
@@ -618,11 +681,13 @@ describe("ngRepeat", () => {
|
|
|
618
681
|
"</ul>",
|
|
619
682
|
)(scope);
|
|
620
683
|
scope.items = ["misko", "shyam", "doug"];
|
|
684
|
+
scope.$digest();
|
|
621
685
|
expect(element.text()).toEqual(
|
|
622
686
|
"misko:true-false-false|shyam:false-true-false|doug:false-false-true|",
|
|
623
687
|
);
|
|
624
688
|
|
|
625
689
|
scope.items.push("frodo");
|
|
690
|
+
scope.$digest();
|
|
626
691
|
expect(element.text()).toEqual(
|
|
627
692
|
"misko:true-false-false|" +
|
|
628
693
|
"shyam:false-true-false|" +
|
|
@@ -632,11 +697,13 @@ describe("ngRepeat", () => {
|
|
|
632
697
|
|
|
633
698
|
scope.items.pop();
|
|
634
699
|
scope.items.pop();
|
|
700
|
+
scope.$digest();
|
|
635
701
|
expect(element.text()).toEqual(
|
|
636
702
|
"misko:true-false-false|shyam:false-false-true|",
|
|
637
703
|
);
|
|
638
704
|
|
|
639
705
|
scope.items.pop();
|
|
706
|
+
scope.$digest();
|
|
640
707
|
expect(element.text()).toEqual("misko:true-false-true|");
|
|
641
708
|
});
|
|
642
709
|
|
|
@@ -647,11 +714,13 @@ describe("ngRepeat", () => {
|
|
|
647
714
|
"</ul>",
|
|
648
715
|
)(scope);
|
|
649
716
|
scope.items = ["misko", "shyam", "doug"];
|
|
717
|
+
scope.$digest();
|
|
650
718
|
expect(element.text()).toEqual(
|
|
651
719
|
"misko:true-false|shyam:false-true|doug:true-false|",
|
|
652
720
|
);
|
|
653
721
|
|
|
654
722
|
scope.items.push("frodo");
|
|
723
|
+
scope.$digest();
|
|
655
724
|
expect(element.text()).toBe(
|
|
656
725
|
"misko:true-false|" +
|
|
657
726
|
"shyam:false-true|" +
|
|
@@ -661,6 +730,7 @@ describe("ngRepeat", () => {
|
|
|
661
730
|
|
|
662
731
|
scope.items.shift();
|
|
663
732
|
scope.items.pop();
|
|
733
|
+
scope.$digest();
|
|
664
734
|
expect(element.text()).toBe("shyam:true-false|doug:false-true|");
|
|
665
735
|
});
|
|
666
736
|
|
|
@@ -671,6 +741,7 @@ describe("ngRepeat", () => {
|
|
|
671
741
|
"</ul>",
|
|
672
742
|
)(scope);
|
|
673
743
|
scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
|
|
744
|
+
scope.$digest();
|
|
674
745
|
expect(element.text()).toEqual(
|
|
675
746
|
"misko:m:true-false-false|" +
|
|
676
747
|
"shyam:s:false-true-false|" +
|
|
@@ -680,11 +751,13 @@ describe("ngRepeat", () => {
|
|
|
680
751
|
|
|
681
752
|
delete scope.items.doug;
|
|
682
753
|
delete scope.items.frodo;
|
|
754
|
+
scope.$digest();
|
|
683
755
|
expect(element.text()).toEqual(
|
|
684
756
|
"misko:m:true-false-false|shyam:s:false-false-true|",
|
|
685
757
|
);
|
|
686
758
|
|
|
687
759
|
delete scope.items.shyam;
|
|
760
|
+
scope.$digest();
|
|
688
761
|
expect(element.text()).toEqual("misko:m:true-false-true|");
|
|
689
762
|
});
|
|
690
763
|
|
|
@@ -695,6 +768,7 @@ describe("ngRepeat", () => {
|
|
|
695
768
|
"</ul>",
|
|
696
769
|
)(scope);
|
|
697
770
|
scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
|
|
771
|
+
scope.$digest();
|
|
698
772
|
expect(element.text()).toBe(
|
|
699
773
|
"misko:m:true-false|" +
|
|
700
774
|
"shyam:s:false-true|" +
|
|
@@ -704,6 +778,7 @@ describe("ngRepeat", () => {
|
|
|
704
778
|
|
|
705
779
|
delete scope.items.frodo;
|
|
706
780
|
delete scope.items.shyam;
|
|
781
|
+
scope.$digest();
|
|
707
782
|
expect(element.text()).toBe("misko:m:true-false|doug:d:false-true|");
|
|
708
783
|
});
|
|
709
784
|
|
|
@@ -720,6 +795,8 @@ describe("ngRepeat", () => {
|
|
|
720
795
|
frodo: "f",
|
|
721
796
|
$toBeFilteredOut: "xxxx",
|
|
722
797
|
};
|
|
798
|
+
scope.$digest();
|
|
799
|
+
|
|
723
800
|
expect(element.text()).toEqual(
|
|
724
801
|
"misko:m:true-false-false|" +
|
|
725
802
|
"shyam:s:false-true-false|" +
|
|
@@ -741,6 +818,7 @@ describe("ngRepeat", () => {
|
|
|
741
818
|
frodo: "f",
|
|
742
819
|
$toBeFilteredOut: "xxxx",
|
|
743
820
|
};
|
|
821
|
+
scope.$digest();
|
|
744
822
|
expect(element.text()).toEqual(
|
|
745
823
|
"misko:m:true-false|" +
|
|
746
824
|
"shyam:s:false-true|" +
|
|
@@ -756,6 +834,8 @@ describe("ngRepeat", () => {
|
|
|
756
834
|
scope.items = ["a", "b", "c"];
|
|
757
835
|
scope.items.$$hashKey = "xxx";
|
|
758
836
|
scope.items.$root = "yyy";
|
|
837
|
+
scope.$digest();
|
|
838
|
+
|
|
759
839
|
expect(element.text()).toEqual("a|b|c|");
|
|
760
840
|
});
|
|
761
841
|
|
|
@@ -771,6 +851,8 @@ describe("ngRepeat", () => {
|
|
|
771
851
|
["a", "b"],
|
|
772
852
|
["c", "d"],
|
|
773
853
|
];
|
|
854
|
+
scope.$digest();
|
|
855
|
+
|
|
774
856
|
expect(element.text()).toEqual("a|b|Xc|d|X");
|
|
775
857
|
});
|
|
776
858
|
|
|
@@ -781,6 +863,8 @@ describe("ngRepeat", () => {
|
|
|
781
863
|
scope.array = ["a", "b", "c"];
|
|
782
864
|
scope.array.foo = "23";
|
|
783
865
|
scope.array.bar = function () {};
|
|
866
|
+
scope.$digest();
|
|
867
|
+
|
|
784
868
|
expect(element.text()).toBe("a|b|c|");
|
|
785
869
|
});
|
|
786
870
|
|
|
@@ -791,6 +875,8 @@ describe("ngRepeat", () => {
|
|
|
791
875
|
scope.array = ["a", "b"];
|
|
792
876
|
scope.array[4] = "c";
|
|
793
877
|
scope.array[6] = "d";
|
|
878
|
+
scope.$digest();
|
|
879
|
+
|
|
794
880
|
expect(element.text()).toBe("a|b|||c||d|");
|
|
795
881
|
});
|
|
796
882
|
|
|
@@ -799,6 +885,8 @@ describe("ngRepeat", () => {
|
|
|
799
885
|
'<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
|
|
800
886
|
)(scope);
|
|
801
887
|
scope.array = ["a", 1, null, undefined, {}];
|
|
888
|
+
scope.$digest();
|
|
889
|
+
|
|
802
890
|
expect(element.text()).toMatch(/a\|1\|\|\|\{\s*\}\|/);
|
|
803
891
|
});
|
|
804
892
|
|
|
@@ -807,11 +895,15 @@ describe("ngRepeat", () => {
|
|
|
807
895
|
'<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
|
|
808
896
|
)(scope);
|
|
809
897
|
scope.array = ["a", "b"];
|
|
898
|
+
scope.$digest();
|
|
899
|
+
|
|
810
900
|
let lis = element.find("li");
|
|
811
901
|
lis.eq(0).data("mark", "a");
|
|
812
902
|
lis.eq(1).data("mark", "b");
|
|
813
903
|
|
|
814
904
|
scope.array = ["b", "a"];
|
|
905
|
+
scope.$digest();
|
|
906
|
+
|
|
815
907
|
lis = element.find("li");
|
|
816
908
|
expect(lis.eq(0).data("mark")).toEqual("b");
|
|
817
909
|
expect(lis.eq(1).data("mark")).toEqual("a");
|
|
@@ -986,6 +1078,8 @@ describe("ngRepeat", () => {
|
|
|
986
1078
|
"</div>",
|
|
987
1079
|
)(scope);
|
|
988
1080
|
|
|
1081
|
+
scope.$digest();
|
|
1082
|
+
|
|
989
1083
|
const ends = element.find("p");
|
|
990
1084
|
expect(ends.length).toBe(3);
|
|
991
1085
|
|
|
@@ -994,6 +1088,8 @@ describe("ngRepeat", () => {
|
|
|
994
1088
|
element[0].insertBefore(extra, ends[1]);
|
|
995
1089
|
|
|
996
1090
|
scope.values.splice(1, 1);
|
|
1091
|
+
scope.$digest();
|
|
1092
|
+
|
|
997
1093
|
// expect the strong tag to be removed too
|
|
998
1094
|
expect(
|
|
999
1095
|
Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
|
|
@@ -1011,6 +1107,8 @@ describe("ngRepeat", () => {
|
|
|
1011
1107
|
"</div>",
|
|
1012
1108
|
)(scope);
|
|
1013
1109
|
|
|
1110
|
+
scope.$digest();
|
|
1111
|
+
|
|
1014
1112
|
const ends = element.find("p");
|
|
1015
1113
|
expect(ends.length).toBe(3);
|
|
1016
1114
|
|
|
@@ -1020,6 +1118,8 @@ describe("ngRepeat", () => {
|
|
|
1020
1118
|
|
|
1021
1119
|
// move the third block to the beginning
|
|
1022
1120
|
scope.values.unshift(scope.values.pop());
|
|
1121
|
+
scope.$digest();
|
|
1122
|
+
|
|
1023
1123
|
// expect the strong tag to be moved too
|
|
1024
1124
|
expect(
|
|
1025
1125
|
Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
|
|
@@ -1055,11 +1155,13 @@ describe("ngRepeat", () => {
|
|
|
1055
1155
|
d = 4;
|
|
1056
1156
|
|
|
1057
1157
|
scope.items = [a, b, c];
|
|
1158
|
+
scope.$digest();
|
|
1058
1159
|
lis = element.find("li");
|
|
1059
1160
|
});
|
|
1060
1161
|
|
|
1061
1162
|
it("should preserve the order of elements", () => {
|
|
1062
1163
|
scope.items = [a, c, d];
|
|
1164
|
+
scope.$digest();
|
|
1063
1165
|
const newElements = element.find("li");
|
|
1064
1166
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1065
1167
|
expect(newElements[1]).toEqual(lis[2]);
|
|
@@ -1068,39 +1170,47 @@ describe("ngRepeat", () => {
|
|
|
1068
1170
|
|
|
1069
1171
|
it("should throw error on adding existing duplicates and recover", () => {
|
|
1070
1172
|
scope.items = [a, a, a];
|
|
1173
|
+
scope.$digest();
|
|
1071
1174
|
expect(logs.shift().message).toMatch(/Duplicate key/);
|
|
1072
1175
|
|
|
1073
1176
|
// recover
|
|
1074
1177
|
scope.items = [a];
|
|
1178
|
+
scope.$digest();
|
|
1075
1179
|
let newElements = element.find("li");
|
|
1076
1180
|
expect(newElements.length).toEqual(1);
|
|
1077
1181
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1078
1182
|
|
|
1079
1183
|
scope.items = [];
|
|
1184
|
+
scope.$digest();
|
|
1080
1185
|
newElements = element.find("li");
|
|
1081
1186
|
expect(newElements.length).toEqual(0);
|
|
1082
1187
|
});
|
|
1083
1188
|
|
|
1084
1189
|
it("should throw error on new duplicates and recover", () => {
|
|
1085
1190
|
scope.items = [d, d, d];
|
|
1191
|
+
scope.$digest();
|
|
1086
1192
|
expect(logs.shift().message).toMatch(/Duplicate key/);
|
|
1087
1193
|
|
|
1088
1194
|
// recover
|
|
1089
1195
|
scope.items = [a];
|
|
1196
|
+
scope.$digest();
|
|
1090
1197
|
let newElements = element.find("li");
|
|
1091
1198
|
expect(newElements.length).toEqual(1);
|
|
1092
1199
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1093
1200
|
|
|
1094
1201
|
scope.items = [];
|
|
1202
|
+
scope.$digest();
|
|
1095
1203
|
newElements = element.find("li");
|
|
1096
1204
|
expect(newElements.length).toEqual(0);
|
|
1097
1205
|
});
|
|
1098
1206
|
|
|
1099
1207
|
it("should reverse items when the collection is reversed", () => {
|
|
1100
1208
|
scope.items = [a, b, c];
|
|
1209
|
+
scope.$digest();
|
|
1101
1210
|
lis = element.find("li");
|
|
1102
1211
|
|
|
1103
1212
|
scope.items = [c, b, a];
|
|
1213
|
+
scope.$digest();
|
|
1104
1214
|
const newElements = element.find("li");
|
|
1105
1215
|
expect(newElements.length).toEqual(3);
|
|
1106
1216
|
expect(newElements[0]).toEqual(lis[2]);
|
|
@@ -1113,10 +1223,12 @@ describe("ngRepeat", () => {
|
|
|
1113
1223
|
// model that is composed of primitives.
|
|
1114
1224
|
|
|
1115
1225
|
scope.items = ["hello", "cau", "ahoj"];
|
|
1226
|
+
scope.$digest();
|
|
1116
1227
|
lis = element.find("li");
|
|
1117
1228
|
lis[2].id = "yes";
|
|
1118
1229
|
|
|
1119
1230
|
scope.items = ["ahoj", "hello", "cau"];
|
|
1231
|
+
scope.$digest();
|
|
1120
1232
|
const newLis = element.find("li");
|
|
1121
1233
|
expect(newLis.length).toEqual(3);
|
|
1122
1234
|
expect(newLis[0]).toEqual(lis[2]);
|
|
@@ -1126,9 +1238,15 @@ describe("ngRepeat", () => {
|
|
|
1126
1238
|
|
|
1127
1239
|
it("should be stable even if the collection is initially undefined", () => {
|
|
1128
1240
|
scope.items = undefined;
|
|
1241
|
+
scope.$digest();
|
|
1242
|
+
|
|
1129
1243
|
scope.items = [{ name: "A" }, { name: "B" }, { name: "C" }];
|
|
1244
|
+
scope.$digest();
|
|
1245
|
+
|
|
1130
1246
|
lis = element.find("li");
|
|
1131
1247
|
scope.items.shift();
|
|
1248
|
+
scope.$digest();
|
|
1249
|
+
|
|
1132
1250
|
const newLis = element.find("li");
|
|
1133
1251
|
expect(newLis.length).toBe(2);
|
|
1134
1252
|
expect(newLis[0]).toBe(lis[1]);
|
|
@@ -1154,6 +1272,7 @@ describe("ngRepeat", () => {
|
|
|
1154
1272
|
element = $compile(
|
|
1155
1273
|
'<div><div ng-repeat="i in [1,2]" elm-trans>{{i}}</div></div>',
|
|
1156
1274
|
)(scope);
|
|
1275
|
+
scope.$digest();
|
|
1157
1276
|
expect(element.text()).toBe("[[1]][[2]]");
|
|
1158
1277
|
});
|
|
1159
1278
|
|
|
@@ -1167,6 +1286,7 @@ describe("ngRepeat", () => {
|
|
|
1167
1286
|
scope = injector.get("$rootScope");
|
|
1168
1287
|
$templateCache = injector.get("$templateCache");
|
|
1169
1288
|
$templateCache.set("test.html", "hello");
|
|
1289
|
+
scope.$digest();
|
|
1170
1290
|
setTimeout(() => {
|
|
1171
1291
|
expect(element.text()).toBe("hellohello");
|
|
1172
1292
|
done();
|
|
@@ -1177,6 +1297,7 @@ describe("ngRepeat", () => {
|
|
|
1177
1297
|
element = $compile(
|
|
1178
1298
|
'<div><div ng-repeat="i in [1,2,3,4]" ng-if="i % 2 === 0">{{i}};</div></div>',
|
|
1179
1299
|
)(scope);
|
|
1300
|
+
scope.$digest();
|
|
1180
1301
|
expect(element.text()).toBe("2;4;");
|
|
1181
1302
|
});
|
|
1182
1303
|
});
|
|
@@ -1195,8 +1316,10 @@ describe("ngRepeat", () => {
|
|
|
1195
1316
|
"</div>",
|
|
1196
1317
|
)(scope);
|
|
1197
1318
|
|
|
1319
|
+
scope.$digest();
|
|
1198
1320
|
expect(element.text()).toEqual("T1:D1;T2:D2;");
|
|
1199
1321
|
scope.books.push({ title: "T3", description: "D3" });
|
|
1322
|
+
scope.$digest();
|
|
1200
1323
|
expect(element.text()).toEqual("T1:D1;T2:D2;T3:D3;");
|
|
1201
1324
|
});
|
|
1202
1325
|
|
|
@@ -1211,10 +1334,12 @@ describe("ngRepeat", () => {
|
|
|
1211
1334
|
"</div>",
|
|
1212
1335
|
)(scope);
|
|
1213
1336
|
|
|
1337
|
+
scope.$digest();
|
|
1214
1338
|
expect(element.find("div").length).toBe(6);
|
|
1215
1339
|
scope.values.shift();
|
|
1216
1340
|
scope.values.push(4);
|
|
1217
1341
|
|
|
1342
|
+
scope.$digest();
|
|
1218
1343
|
expect(element.find("div").length).toBe(6);
|
|
1219
1344
|
expect(element.text()).not.toContain("if:1;");
|
|
1220
1345
|
});
|
|
@@ -1267,6 +1392,7 @@ describe("ngRepeat", () => {
|
|
|
1267
1392
|
const element = $compile('<iso><span ng-bind="val"></span></iso>')(
|
|
1268
1393
|
$rootScope,
|
|
1269
1394
|
);
|
|
1395
|
+
$rootScope.$digest();
|
|
1270
1396
|
expect(element.text().trim()).toEqual("transcluded content");
|
|
1271
1397
|
dealoc(element);
|
|
1272
1398
|
});
|
|
@@ -1285,6 +1411,7 @@ describe("ngRepeat", () => {
|
|
|
1285
1411
|
const element = $compile(
|
|
1286
1412
|
'<div><span ng-repeat="a in [1]"><span assert-a></span></span></div>',
|
|
1287
1413
|
)($rootScope);
|
|
1414
|
+
$rootScope.$digest();
|
|
1288
1415
|
dealoc(element);
|
|
1289
1416
|
});
|
|
1290
1417
|
});
|
|
@@ -1356,10 +1483,10 @@ describe("ngRepeat", () => {
|
|
|
1356
1483
|
// ),
|
|
1357
1484
|
// )(scope);
|
|
1358
1485
|
|
|
1359
|
-
// ; // re-enable the animations;
|
|
1486
|
+
// scope.$digest(); // re-enable the animations;
|
|
1360
1487
|
|
|
1361
1488
|
// scope.items = ["1", "2", "3"];
|
|
1362
|
-
// ;
|
|
1489
|
+
// scope.$digest();
|
|
1363
1490
|
|
|
1364
1491
|
// item = $animate.queue.shift();
|
|
1365
1492
|
// expect(item.event).toBe("enter");
|
|
@@ -1391,7 +1518,7 @@ describe("ngRepeat", () => {
|
|
|
1391
1518
|
// )(scope);
|
|
1392
1519
|
|
|
1393
1520
|
// scope.items = ["1", "2", "3"];
|
|
1394
|
-
// ;
|
|
1521
|
+
// scope.$digest();
|
|
1395
1522
|
|
|
1396
1523
|
// item = $animate.queue.shift();
|
|
1397
1524
|
// expect(item.event).toBe("enter");
|
|
@@ -1406,7 +1533,7 @@ describe("ngRepeat", () => {
|
|
|
1406
1533
|
// expect(item.element.text()).toBe("3");
|
|
1407
1534
|
|
|
1408
1535
|
// scope.items = ["1", "3"];
|
|
1409
|
-
// ;
|
|
1536
|
+
// scope.$digest();
|
|
1410
1537
|
|
|
1411
1538
|
// item = $animate.queue.shift();
|
|
1412
1539
|
// expect(item.event).toBe("leave");
|
|
@@ -1443,11 +1570,11 @@ describe("ngRepeat", () => {
|
|
|
1443
1570
|
// )(scope);
|
|
1444
1571
|
|
|
1445
1572
|
// scope.items = ["1", "2", "3"];
|
|
1446
|
-
// ;
|
|
1573
|
+
// scope.$digest();
|
|
1447
1574
|
// expect(element.text()).toBe("123");
|
|
1448
1575
|
|
|
1449
1576
|
// scope.items = ["1", "3"];
|
|
1450
|
-
// ;
|
|
1577
|
+
// scope.$digest();
|
|
1451
1578
|
|
|
1452
1579
|
// expect(element.text()).toBe("123"); // the original order should be preserved
|
|
1453
1580
|
// $animate.flush();
|
|
@@ -1472,7 +1599,7 @@ describe("ngRepeat", () => {
|
|
|
1472
1599
|
// )(scope);
|
|
1473
1600
|
|
|
1474
1601
|
// scope.items = ["1", "2", "3"];
|
|
1475
|
-
// ;
|
|
1602
|
+
// scope.$digest();
|
|
1476
1603
|
|
|
1477
1604
|
// item = $animate.queue.shift();
|
|
1478
1605
|
// expect(item.event).toBe("enter");
|
|
@@ -1487,7 +1614,7 @@ describe("ngRepeat", () => {
|
|
|
1487
1614
|
// expect(item.element.text()).toBe("3");
|
|
1488
1615
|
|
|
1489
1616
|
// scope.items = ["2", "3", "1"];
|
|
1490
|
-
// ;
|
|
1617
|
+
// scope.$digest();
|
|
1491
1618
|
|
|
1492
1619
|
// item = $animate.queue.shift();
|
|
1493
1620
|
// expect(item.event).toBe("move");
|