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