@angular-wave/angular.ts 0.4.2 → 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.esm.js +2 -2
- package/dist/angular-ts.umd.js +12 -2
- package/index.html +74 -3
- package/package.json +7 -7
- package/src/angular.spec.js +1 -269
- package/src/animations/animate-css-driver.js +2 -2
- package/src/animations/animate-css.js +12 -21
- package/src/animations/animate-js-driver.js +1 -3
- package/src/animations/animate-js.js +4 -4
- package/src/animations/animate-queue.js +23 -23
- 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 +4 -4
- package/src/animations/shared.js +14 -12
- package/src/binding.spec.js +0 -1
- package/src/core/cache/cache.js +2 -29
- package/src/core/compile/attributes.js +2 -3
- package/src/core/compile/compile.js +260 -245
- package/src/core/compile/compile.spec.js +63 -317
- 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/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 +28 -7
- package/src/core/parse/parse.spec.js +95 -91
- package/src/core/prop.spec.js +4 -60
- package/src/core/sce/sce.js +1 -2
- package/src/core/sce/sce.spec.js +0 -8
- package/src/core/scope/scope.js +62 -32
- 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/{list/list.test.js → attrs/attrs.test.js} +1 -1
- package/src/{core/q/q.html → directive/attrs/boolean.html} +1 -1
- package/src/directive/attrs/boolean.spec.js +0 -15
- package/src/{core/q/q.test.js → directive/attrs/boolean.test.js} +1 -2
- package/src/{core/timeout/timeout.html → directive/attrs/element-style.html} +4 -1
- package/src/directive/attrs/element-style.spec.js +0 -8
- package/src/{core/scope/scope.test.js → directive/attrs/element-style.test.js} +1 -2
- 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 +1 -4
- package/src/{core/interval/interval.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/channel/channel.test.js +9 -0
- 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 +14 -22
- package/src/directive/form/form.spec.js +0 -65
- package/src/directive/if/if.spec.js +2 -7
- package/src/directive/if/if.test.js +1 -2
- package/src/directive/include/include.js +2 -2
- 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.js +1 -2
- package/src/directive/input/input.spec.js +191 -331
- package/src/directive/messages/messages.spec.js +4 -35
- package/src/directive/model/model.js +30 -42
- package/src/directive/model/model.spec.js +2 -49
- package/src/directive/model-options/model-options.js +22 -26
- 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.js +1 -3
- package/src/directive/options/options.spec.js +3 -38
- package/src/directive/ref/href.spec.js +0 -15
- package/src/directive/repeat/repeat.js +2 -2
- package/src/directive/repeat/repeat.spec.js +56 -192
- package/src/directive/script/script.spec.js +0 -2
- package/src/directive/select/select.js +3 -3
- package/src/directive/select/select.spec.js +9 -106
- 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.js +1 -2
- 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 +24 -30
- package/src/router/directives/state-directives.spec.js +0 -83
- package/src/router/directives/view-directive.js +6 -15
- 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 +9 -12
- 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/url/url-service.js +2 -8
- package/src/router/url/url-service.spec.js +3 -4
- package/src/router/view-hook.spec.js +2 -2
- package/src/router/view-scroll.js +4 -6
- package/src/services/http/http.js +11 -15
- 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.js +19 -17
- package/src/services/http-backend/http-backend.spec.js +3 -3
- package/src/services/template-request.js +2 -4
- package/src/shared/common.js +6 -10
- package/src/shared/jqlite/jqlite.js +14 -15
- package/src/shared/jqlite/jqlite.spec.js +2 -2
- package/src/shared/utils.js +15 -92
- 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/types/directive/form/form.d.ts +1 -0
- package/types/shared/common.d.ts +0 -1
- package/types/shared/utils.d.ts +0 -35
- package/src/core/interval/interval-factory.js +0 -50
- 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/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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Angular } from "../../loader";
|
|
2
|
-
import { createInjector } from "../../core/di/injector";
|
|
3
2
|
import { dealoc, JQLite } from "../../shared/jqlite/jqlite";
|
|
4
|
-
import {
|
|
3
|
+
import { valueFn } from "../../shared/utils";
|
|
5
4
|
|
|
6
5
|
describe("ngRepeat", () => {
|
|
7
6
|
let element;
|
|
@@ -56,21 +55,18 @@ describe("ngRepeat", () => {
|
|
|
56
55
|
Array.prototype.extraProperty = "should be ignored";
|
|
57
56
|
// INIT
|
|
58
57
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
59
|
-
scope.$digest();
|
|
60
58
|
expect(element.find("li").length).toEqual(2);
|
|
61
59
|
expect(element.text()).toEqual("misko;shyam;");
|
|
62
60
|
delete Array.prototype.extraProperty;
|
|
63
61
|
|
|
64
62
|
// GROW
|
|
65
63
|
scope.items.push({ name: "adam" });
|
|
66
|
-
scope.$digest();
|
|
67
64
|
expect(element.find("li").length).toEqual(3);
|
|
68
65
|
expect(element.text()).toEqual("misko;shyam;adam;");
|
|
69
66
|
|
|
70
67
|
// // SHRINK
|
|
71
68
|
scope.items.pop();
|
|
72
69
|
scope.items.shift();
|
|
73
|
-
scope.$digest();
|
|
74
70
|
expect(element.find("li").length).toEqual(1);
|
|
75
71
|
expect(element.text()).toEqual("shyam;");
|
|
76
72
|
});
|
|
@@ -80,14 +76,10 @@ describe("ngRepeat", () => {
|
|
|
80
76
|
"<ul>" + '<li ng-repeat="item in ::items">{{item.name}};</li>' + "</ul>",
|
|
81
77
|
)(scope);
|
|
82
78
|
|
|
83
|
-
scope.$digest();
|
|
84
|
-
|
|
85
79
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
86
|
-
scope.$digest();
|
|
87
80
|
expect(element.find("li").length).toEqual(2);
|
|
88
81
|
expect(element.text()).toEqual("misko;shyam;");
|
|
89
82
|
scope.items.push({ name: "adam" });
|
|
90
|
-
scope.$digest();
|
|
91
83
|
expect(element.find("li").length).toEqual(2);
|
|
92
84
|
expect(element.text()).toEqual("misko;shyam;");
|
|
93
85
|
});
|
|
@@ -97,14 +89,10 @@ describe("ngRepeat", () => {
|
|
|
97
89
|
"<ul>" + '<li ng-repeat="item in items">{{::item.name}};</li>' + "</ul>",
|
|
98
90
|
)(scope);
|
|
99
91
|
|
|
100
|
-
scope.$digest();
|
|
101
|
-
|
|
102
92
|
scope.items = [{ name: "misko" }, { name: "shyam" }];
|
|
103
|
-
scope.$digest();
|
|
104
93
|
expect(element.find("li").length).toEqual(2);
|
|
105
94
|
expect(element.text()).toEqual("misko;shyam;");
|
|
106
95
|
scope.items.push({ name: "adam" });
|
|
107
|
-
scope.$digest();
|
|
108
96
|
expect(element.find("li").length).toEqual(3);
|
|
109
97
|
expect(element.text()).toEqual("misko;shyam;adam;");
|
|
110
98
|
});
|
|
@@ -121,7 +109,6 @@ describe("ngRepeat", () => {
|
|
|
121
109
|
|
|
122
110
|
const htmlCollection = document.getElementsByClassName("test");
|
|
123
111
|
scope.items = htmlCollection;
|
|
124
|
-
scope.$digest();
|
|
125
112
|
expect(element.find("li").length).toEqual(3);
|
|
126
113
|
expect(element.text()).toEqual("x;y;x;");
|
|
127
114
|
|
|
@@ -144,7 +131,6 @@ describe("ngRepeat", () => {
|
|
|
144
131
|
)(scope);
|
|
145
132
|
|
|
146
133
|
scope.items = collection;
|
|
147
|
-
scope.$digest();
|
|
148
134
|
expect(element.find("li").length).toEqual(3);
|
|
149
135
|
expect(element.text()).toEqual("x;y;z;");
|
|
150
136
|
});
|
|
@@ -156,7 +142,6 @@ describe("ngRepeat", () => {
|
|
|
156
142
|
"</ul>",
|
|
157
143
|
)(scope);
|
|
158
144
|
scope.items = { misko: "swe", shyam: "set" };
|
|
159
|
-
scope.$digest();
|
|
160
145
|
expect(element.text()).toEqual("misko:swe|shyam:set|");
|
|
161
146
|
});
|
|
162
147
|
|
|
@@ -167,7 +152,6 @@ describe("ngRepeat", () => {
|
|
|
167
152
|
"</ul>",
|
|
168
153
|
)(scope);
|
|
169
154
|
scope.items = { me: "swe", you: "set" };
|
|
170
|
-
scope.$digest();
|
|
171
155
|
expect(element.text()).toEqual("me:swe|you:set|");
|
|
172
156
|
});
|
|
173
157
|
|
|
@@ -184,7 +168,6 @@ describe("ngRepeat", () => {
|
|
|
184
168
|
dogname: "Bingo",
|
|
185
169
|
codename: "20",
|
|
186
170
|
};
|
|
187
|
-
scope.$digest();
|
|
188
171
|
expect(element.text()).toEqual(
|
|
189
172
|
"age:20|wealth:20|prodname:Bingo|dogname:Bingo|codename:20|",
|
|
190
173
|
);
|
|
@@ -202,11 +185,9 @@ describe("ngRepeat", () => {
|
|
|
202
185
|
items.shyam = "set";
|
|
203
186
|
|
|
204
187
|
scope.items = items;
|
|
205
|
-
scope.$digest();
|
|
206
188
|
expect(element.text()).toEqual("misko:swe|shyam:set|");
|
|
207
189
|
|
|
208
190
|
delete items.shyam;
|
|
209
|
-
scope.$digest();
|
|
210
191
|
expect(element.text()).toEqual("misko:swe|");
|
|
211
192
|
});
|
|
212
193
|
|
|
@@ -218,12 +199,10 @@ describe("ngRepeat", () => {
|
|
|
218
199
|
"</ul>",
|
|
219
200
|
)(scope);
|
|
220
201
|
scope.items = [{ id: "misko" }, { id: "igor" }];
|
|
221
|
-
scope.$digest();
|
|
222
202
|
const li0 = element.find("li")[0];
|
|
223
203
|
const li1 = element.find("li")[1];
|
|
224
204
|
|
|
225
205
|
scope.items.push(scope.items.shift());
|
|
226
|
-
scope.$digest();
|
|
227
206
|
expect(element.find("li")[0]).toBe(li1);
|
|
228
207
|
expect(element.find("li")[1]).toBe(li0);
|
|
229
208
|
});
|
|
@@ -235,12 +214,10 @@ describe("ngRepeat", () => {
|
|
|
235
214
|
"</ul>",
|
|
236
215
|
)(scope);
|
|
237
216
|
scope.items = [{ name: "misko" }, { name: "igor" }];
|
|
238
|
-
scope.$digest();
|
|
239
217
|
const li0 = element.find("li")[0];
|
|
240
218
|
const li1 = element.find("li")[1];
|
|
241
219
|
|
|
242
220
|
scope.items.push(scope.items.shift());
|
|
243
|
-
scope.$digest();
|
|
244
221
|
expect(element.find("li")[0]).toBe(li1);
|
|
245
222
|
expect(element.find("li")[1]).toBe(li0);
|
|
246
223
|
});
|
|
@@ -255,18 +232,16 @@ describe("ngRepeat", () => {
|
|
|
255
232
|
"</ul>",
|
|
256
233
|
)(scope);
|
|
257
234
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
258
|
-
scope.$digest();
|
|
259
|
-
|
|
260
235
|
expect(element.find("li").text()).toBe("igor;");
|
|
261
236
|
});
|
|
262
237
|
|
|
263
238
|
it("should track using provided function when a filter is present", () => {
|
|
264
239
|
scope.newArray = function (items) {
|
|
265
240
|
const newArray = [];
|
|
266
|
-
forEach(
|
|
241
|
+
Object.entries(items).forEach(([id, name]) => {
|
|
267
242
|
newArray.push({
|
|
268
|
-
id:
|
|
269
|
-
name:
|
|
243
|
+
id: id,
|
|
244
|
+
name: name,
|
|
270
245
|
});
|
|
271
246
|
});
|
|
272
247
|
return newArray;
|
|
@@ -278,14 +253,12 @@ describe("ngRepeat", () => {
|
|
|
278
253
|
{ id: 1, name: "igor" },
|
|
279
254
|
{ id: 2, name: "misko" },
|
|
280
255
|
];
|
|
281
|
-
scope.$digest();
|
|
282
256
|
expect(element.text()).toBe("igor;misko;");
|
|
283
257
|
|
|
284
258
|
const li0 = element.find("li")[0];
|
|
285
259
|
const li1 = element.find("li")[1];
|
|
286
260
|
|
|
287
261
|
scope.items.push(scope.items.shift());
|
|
288
|
-
scope.$digest();
|
|
289
262
|
expect(element.find("li")[0]).toBe(li1);
|
|
290
263
|
expect(element.find("li")[1]).toBe(li0);
|
|
291
264
|
});
|
|
@@ -300,75 +273,61 @@ describe("ngRepeat", () => {
|
|
|
300
273
|
Array.prototype.extraProperty = "should be ignored";
|
|
301
274
|
// INIT
|
|
302
275
|
scope.items = [true, true, true];
|
|
303
|
-
scope.$digest();
|
|
304
276
|
expect(element.find("li").length).toEqual(3);
|
|
305
277
|
expect(element.text()).toEqual("true;true;true;");
|
|
306
278
|
delete Array.prototype.extraProperty;
|
|
307
279
|
|
|
308
280
|
scope.items = [false, true, true];
|
|
309
|
-
scope.$digest();
|
|
310
281
|
expect(element.find("li").length).toEqual(3);
|
|
311
282
|
expect(element.text()).toEqual("false;true;true;");
|
|
312
283
|
|
|
313
284
|
scope.items = [false, true, false];
|
|
314
|
-
scope.$digest();
|
|
315
285
|
expect(element.find("li").length).toEqual(3);
|
|
316
286
|
expect(element.text()).toEqual("false;true;false;");
|
|
317
287
|
|
|
318
288
|
scope.items = [true];
|
|
319
|
-
scope.$digest();
|
|
320
289
|
expect(element.find("li").length).toEqual(1);
|
|
321
290
|
expect(element.text()).toEqual("true;");
|
|
322
291
|
|
|
323
292
|
scope.items = [true, true, false];
|
|
324
|
-
scope.$digest();
|
|
325
293
|
expect(element.find("li").length).toEqual(3);
|
|
326
294
|
expect(element.text()).toEqual("true;true;false;");
|
|
327
295
|
|
|
328
296
|
scope.items = [true, false, false];
|
|
329
|
-
scope.$digest();
|
|
330
297
|
expect(element.find("li").length).toEqual(3);
|
|
331
298
|
expect(element.text()).toEqual("true;false;false;");
|
|
332
299
|
|
|
333
300
|
// string
|
|
334
301
|
scope.items = ["a", "a", "a"];
|
|
335
|
-
scope.$digest();
|
|
336
302
|
expect(element.find("li").length).toEqual(3);
|
|
337
303
|
expect(element.text()).toEqual("a;a;a;");
|
|
338
304
|
|
|
339
305
|
scope.items = ["ab", "a", "a"];
|
|
340
|
-
scope.$digest();
|
|
341
306
|
expect(element.find("li").length).toEqual(3);
|
|
342
307
|
expect(element.text()).toEqual("ab;a;a;");
|
|
343
308
|
|
|
344
309
|
scope.items = ["test"];
|
|
345
|
-
scope.$digest();
|
|
346
310
|
expect(element.find("li").length).toEqual(1);
|
|
347
311
|
expect(element.text()).toEqual("test;");
|
|
348
312
|
|
|
349
313
|
scope.items = ["same", "value"];
|
|
350
|
-
scope.$digest();
|
|
351
314
|
expect(element.find("li").length).toEqual(2);
|
|
352
315
|
expect(element.text()).toEqual("same;value;");
|
|
353
316
|
|
|
354
317
|
// number
|
|
355
318
|
scope.items = [12, 12, 12];
|
|
356
|
-
scope.$digest();
|
|
357
319
|
expect(element.find("li").length).toEqual(3);
|
|
358
320
|
expect(element.text()).toEqual("12;12;12;");
|
|
359
321
|
|
|
360
322
|
scope.items = [53, 12, 27];
|
|
361
|
-
scope.$digest();
|
|
362
323
|
expect(element.find("li").length).toEqual(3);
|
|
363
324
|
expect(element.text()).toEqual("53;12;27;");
|
|
364
325
|
|
|
365
326
|
scope.items = [89];
|
|
366
|
-
scope.$digest();
|
|
367
327
|
expect(element.find("li").length).toEqual(1);
|
|
368
328
|
expect(element.text()).toEqual("89;");
|
|
369
329
|
|
|
370
330
|
scope.items = [89, 23];
|
|
371
|
-
scope.$digest();
|
|
372
331
|
expect(element.find("li").length).toEqual(2);
|
|
373
332
|
expect(element.text()).toEqual("89;23;");
|
|
374
333
|
});
|
|
@@ -384,7 +343,6 @@ describe("ngRepeat", () => {
|
|
|
384
343
|
)(scope);
|
|
385
344
|
document.getElementById("dummy").appendChild(element[0]);
|
|
386
345
|
scope.items = { misko: true, shyam: true, zhenbo: true };
|
|
387
|
-
scope.$digest();
|
|
388
346
|
expect(element.find("li").length).toEqual(3);
|
|
389
347
|
expect(element.text()).toEqual("misko:true;shyam:true;zhenbo:true;");
|
|
390
348
|
element.find("input").eq(0)[0].click();
|
|
@@ -407,7 +365,6 @@ describe("ngRepeat", () => {
|
|
|
407
365
|
expect(element.find("input")[2].checked).toBe(true);
|
|
408
366
|
|
|
409
367
|
scope.items = { misko: false, shyam: true, zhenbo: true };
|
|
410
|
-
scope.$digest();
|
|
411
368
|
expect(element.text()).toEqual("misko:false;shyam:true;zhenbo:true;");
|
|
412
369
|
expect(element.find("input")[0].checked).toBe(false);
|
|
413
370
|
expect(element.find("input")[1].checked).toBe(true);
|
|
@@ -426,8 +383,6 @@ describe("ngRepeat", () => {
|
|
|
426
383
|
'<li ng-repeat="(k, v) in [1, 2] track by trackBy(k, v)"></li>' +
|
|
427
384
|
"</ul>",
|
|
428
385
|
)(scope);
|
|
429
|
-
scope.$digest();
|
|
430
|
-
|
|
431
386
|
expect(scope.trackBy).toHaveBeenCalledTimes(2);
|
|
432
387
|
expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1]);
|
|
433
388
|
expect(scope.trackBy.calls.argsFor(1)).toEqual([1, 2]);
|
|
@@ -446,8 +401,6 @@ describe("ngRepeat", () => {
|
|
|
446
401
|
"</li>" +
|
|
447
402
|
"</ul>",
|
|
448
403
|
)(scope);
|
|
449
|
-
scope.$digest();
|
|
450
|
-
|
|
451
404
|
expect(scope.trackBy).toHaveBeenCalledTimes(4);
|
|
452
405
|
expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1, 0, 3]);
|
|
453
406
|
expect(scope.trackBy.calls.argsFor(1)).toEqual([0, 1, 1, 4]);
|
|
@@ -472,11 +425,7 @@ describe("ngRepeat", () => {
|
|
|
472
425
|
];
|
|
473
426
|
|
|
474
427
|
expect(scope.results).toBeUndefined();
|
|
475
|
-
scope.$digest();
|
|
476
|
-
|
|
477
428
|
scope.x = "bl";
|
|
478
|
-
scope.$digest();
|
|
479
|
-
|
|
480
429
|
expect(scope.results).toEqual([
|
|
481
430
|
{ name: "blue" },
|
|
482
431
|
{ name: "black" },
|
|
@@ -484,8 +433,6 @@ describe("ngRepeat", () => {
|
|
|
484
433
|
]);
|
|
485
434
|
|
|
486
435
|
scope.items = [];
|
|
487
|
-
scope.$digest();
|
|
488
|
-
|
|
489
436
|
expect(scope.results).toEqual([]);
|
|
490
437
|
});
|
|
491
438
|
|
|
@@ -500,12 +447,9 @@ describe("ngRepeat", () => {
|
|
|
500
447
|
)(scope);
|
|
501
448
|
|
|
502
449
|
scope.items = [1, 2, 3, 4, 5, 6];
|
|
503
|
-
scope.$digest();
|
|
504
450
|
expect(element.text().trim()).toEqual("123456");
|
|
505
451
|
|
|
506
452
|
scope.x = "0";
|
|
507
|
-
scope.$digest();
|
|
508
|
-
|
|
509
453
|
expect(element.text().trim()).toEqual("No results found...");
|
|
510
454
|
});
|
|
511
455
|
|
|
@@ -519,22 +463,17 @@ describe("ngRepeat", () => {
|
|
|
519
463
|
{ name: "orange" },
|
|
520
464
|
{ name: "blonde" },
|
|
521
465
|
];
|
|
522
|
-
forEach(
|
|
523
|
-
|
|
524
|
-
(
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
{ name: "blonde" },
|
|
534
|
-
]);
|
|
535
|
-
dealoc(element);
|
|
536
|
-
},
|
|
537
|
-
);
|
|
466
|
+
["null2", "qthis", "qthisq", "fundefined", "$$parent"].forEach((name) => {
|
|
467
|
+
const expr = `item in items | filter:x as ${name} track by $index`;
|
|
468
|
+
element = $compile(`<div><div ng-repeat="${expr}"></div></div>`)(scope);
|
|
469
|
+
scope.$digest();
|
|
470
|
+
expect(scope[name]).toEqual([
|
|
471
|
+
{ name: "blue" },
|
|
472
|
+
{ name: "black" },
|
|
473
|
+
{ name: "blonde" },
|
|
474
|
+
]);
|
|
475
|
+
dealoc(element);
|
|
476
|
+
});
|
|
538
477
|
});
|
|
539
478
|
|
|
540
479
|
it("should throw if alias identifier is not a simple identifier", () => {
|
|
@@ -548,42 +487,39 @@ describe("ngRepeat", () => {
|
|
|
548
487
|
{ name: "blonde" },
|
|
549
488
|
];
|
|
550
489
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
dealoc(element);
|
|
585
|
-
},
|
|
586
|
-
);
|
|
490
|
+
[
|
|
491
|
+
"null",
|
|
492
|
+
"this",
|
|
493
|
+
"undefined",
|
|
494
|
+
"$parent",
|
|
495
|
+
"$root",
|
|
496
|
+
"$id",
|
|
497
|
+
"$index",
|
|
498
|
+
"$first",
|
|
499
|
+
"$middle",
|
|
500
|
+
"$last",
|
|
501
|
+
"$even",
|
|
502
|
+
"$odd",
|
|
503
|
+
"obj[key]",
|
|
504
|
+
'obj["key"]',
|
|
505
|
+
"obj['key']",
|
|
506
|
+
"obj.property",
|
|
507
|
+
"foo=6",
|
|
508
|
+
].forEach((expr) => {
|
|
509
|
+
const expression =
|
|
510
|
+
`item in items | filter:x as ${expr} track by $index`.replace(
|
|
511
|
+
/"/g,
|
|
512
|
+
""",
|
|
513
|
+
);
|
|
514
|
+
element = $compile(
|
|
515
|
+
`<div>` +
|
|
516
|
+
` <div ng-repeat="${expression}">{{item}}</div>` +
|
|
517
|
+
`</div>`,
|
|
518
|
+
)(scope);
|
|
519
|
+
expect(logs.shift().message).toMatch(/must be a valid JS identifier/);
|
|
520
|
+
|
|
521
|
+
dealoc(element);
|
|
522
|
+
});
|
|
587
523
|
});
|
|
588
524
|
|
|
589
525
|
it("should allow expressions over multiple lines", () => {
|
|
@@ -599,8 +535,6 @@ describe("ngRepeat", () => {
|
|
|
599
535
|
};
|
|
600
536
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
601
537
|
|
|
602
|
-
scope.$digest();
|
|
603
|
-
|
|
604
538
|
expect(element.text()).toEqual("igor/misko/");
|
|
605
539
|
});
|
|
606
540
|
|
|
@@ -615,8 +549,6 @@ describe("ngRepeat", () => {
|
|
|
615
549
|
|
|
616
550
|
scope.items = [{ name: "igor" }, { name: "misko" }];
|
|
617
551
|
|
|
618
|
-
scope.$digest();
|
|
619
|
-
|
|
620
552
|
expect(element.text()).toEqual("misko/");
|
|
621
553
|
});
|
|
622
554
|
|
|
@@ -632,7 +564,6 @@ describe("ngRepeat", () => {
|
|
|
632
564
|
)(scope);
|
|
633
565
|
scope.items = new Class();
|
|
634
566
|
scope.items.name = "value";
|
|
635
|
-
scope.$digest();
|
|
636
567
|
expect(element.text()).toEqual("name:value;");
|
|
637
568
|
});
|
|
638
569
|
|
|
@@ -655,7 +586,6 @@ describe("ngRepeat", () => {
|
|
|
655
586
|
"</ul>",
|
|
656
587
|
)(scope);
|
|
657
588
|
scope.items = ["misko", "shyam", "frodo"];
|
|
658
|
-
scope.$digest();
|
|
659
589
|
expect(element.text()).toEqual("misko:0|shyam:1|frodo:2|");
|
|
660
590
|
});
|
|
661
591
|
|
|
@@ -666,7 +596,6 @@ describe("ngRepeat", () => {
|
|
|
666
596
|
"</ul>",
|
|
667
597
|
)(scope);
|
|
668
598
|
scope.items = { misko: "m", shyam: "s", frodo: "f" };
|
|
669
|
-
scope.$digest();
|
|
670
599
|
expect(element.text()).toEqual("misko:m:0|shyam:s:1|frodo:f:2|");
|
|
671
600
|
});
|
|
672
601
|
|
|
@@ -677,7 +606,6 @@ describe("ngRepeat", () => {
|
|
|
677
606
|
"</ul>",
|
|
678
607
|
)(scope);
|
|
679
608
|
scope.items = { misko: "m", shyam: "s", frodo: "f", length: 0 };
|
|
680
|
-
scope.$digest();
|
|
681
609
|
expect(element.text()).toEqual(
|
|
682
610
|
"misko:m:0|shyam:s:1|frodo:f:2|length:0:3|",
|
|
683
611
|
);
|
|
@@ -690,13 +618,11 @@ describe("ngRepeat", () => {
|
|
|
690
618
|
"</ul>",
|
|
691
619
|
)(scope);
|
|
692
620
|
scope.items = ["misko", "shyam", "doug"];
|
|
693
|
-
scope.$digest();
|
|
694
621
|
expect(element.text()).toEqual(
|
|
695
622
|
"misko:true-false-false|shyam:false-true-false|doug:false-false-true|",
|
|
696
623
|
);
|
|
697
624
|
|
|
698
625
|
scope.items.push("frodo");
|
|
699
|
-
scope.$digest();
|
|
700
626
|
expect(element.text()).toEqual(
|
|
701
627
|
"misko:true-false-false|" +
|
|
702
628
|
"shyam:false-true-false|" +
|
|
@@ -706,13 +632,11 @@ describe("ngRepeat", () => {
|
|
|
706
632
|
|
|
707
633
|
scope.items.pop();
|
|
708
634
|
scope.items.pop();
|
|
709
|
-
scope.$digest();
|
|
710
635
|
expect(element.text()).toEqual(
|
|
711
636
|
"misko:true-false-false|shyam:false-false-true|",
|
|
712
637
|
);
|
|
713
638
|
|
|
714
639
|
scope.items.pop();
|
|
715
|
-
scope.$digest();
|
|
716
640
|
expect(element.text()).toEqual("misko:true-false-true|");
|
|
717
641
|
});
|
|
718
642
|
|
|
@@ -723,13 +647,11 @@ describe("ngRepeat", () => {
|
|
|
723
647
|
"</ul>",
|
|
724
648
|
)(scope);
|
|
725
649
|
scope.items = ["misko", "shyam", "doug"];
|
|
726
|
-
scope.$digest();
|
|
727
650
|
expect(element.text()).toEqual(
|
|
728
651
|
"misko:true-false|shyam:false-true|doug:true-false|",
|
|
729
652
|
);
|
|
730
653
|
|
|
731
654
|
scope.items.push("frodo");
|
|
732
|
-
scope.$digest();
|
|
733
655
|
expect(element.text()).toBe(
|
|
734
656
|
"misko:true-false|" +
|
|
735
657
|
"shyam:false-true|" +
|
|
@@ -739,7 +661,6 @@ describe("ngRepeat", () => {
|
|
|
739
661
|
|
|
740
662
|
scope.items.shift();
|
|
741
663
|
scope.items.pop();
|
|
742
|
-
scope.$digest();
|
|
743
664
|
expect(element.text()).toBe("shyam:true-false|doug:false-true|");
|
|
744
665
|
});
|
|
745
666
|
|
|
@@ -750,7 +671,6 @@ describe("ngRepeat", () => {
|
|
|
750
671
|
"</ul>",
|
|
751
672
|
)(scope);
|
|
752
673
|
scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
|
|
753
|
-
scope.$digest();
|
|
754
674
|
expect(element.text()).toEqual(
|
|
755
675
|
"misko:m:true-false-false|" +
|
|
756
676
|
"shyam:s:false-true-false|" +
|
|
@@ -760,13 +680,11 @@ describe("ngRepeat", () => {
|
|
|
760
680
|
|
|
761
681
|
delete scope.items.doug;
|
|
762
682
|
delete scope.items.frodo;
|
|
763
|
-
scope.$digest();
|
|
764
683
|
expect(element.text()).toEqual(
|
|
765
684
|
"misko:m:true-false-false|shyam:s:false-false-true|",
|
|
766
685
|
);
|
|
767
686
|
|
|
768
687
|
delete scope.items.shyam;
|
|
769
|
-
scope.$digest();
|
|
770
688
|
expect(element.text()).toEqual("misko:m:true-false-true|");
|
|
771
689
|
});
|
|
772
690
|
|
|
@@ -777,7 +695,6 @@ describe("ngRepeat", () => {
|
|
|
777
695
|
"</ul>",
|
|
778
696
|
)(scope);
|
|
779
697
|
scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
|
|
780
|
-
scope.$digest();
|
|
781
698
|
expect(element.text()).toBe(
|
|
782
699
|
"misko:m:true-false|" +
|
|
783
700
|
"shyam:s:false-true|" +
|
|
@@ -787,7 +704,6 @@ describe("ngRepeat", () => {
|
|
|
787
704
|
|
|
788
705
|
delete scope.items.frodo;
|
|
789
706
|
delete scope.items.shyam;
|
|
790
|
-
scope.$digest();
|
|
791
707
|
expect(element.text()).toBe("misko:m:true-false|doug:d:false-true|");
|
|
792
708
|
});
|
|
793
709
|
|
|
@@ -804,8 +720,6 @@ describe("ngRepeat", () => {
|
|
|
804
720
|
frodo: "f",
|
|
805
721
|
$toBeFilteredOut: "xxxx",
|
|
806
722
|
};
|
|
807
|
-
scope.$digest();
|
|
808
|
-
|
|
809
723
|
expect(element.text()).toEqual(
|
|
810
724
|
"misko:m:true-false-false|" +
|
|
811
725
|
"shyam:s:false-true-false|" +
|
|
@@ -827,7 +741,6 @@ describe("ngRepeat", () => {
|
|
|
827
741
|
frodo: "f",
|
|
828
742
|
$toBeFilteredOut: "xxxx",
|
|
829
743
|
};
|
|
830
|
-
scope.$digest();
|
|
831
744
|
expect(element.text()).toEqual(
|
|
832
745
|
"misko:m:true-false|" +
|
|
833
746
|
"shyam:s:false-true|" +
|
|
@@ -843,8 +756,6 @@ describe("ngRepeat", () => {
|
|
|
843
756
|
scope.items = ["a", "b", "c"];
|
|
844
757
|
scope.items.$$hashKey = "xxx";
|
|
845
758
|
scope.items.$root = "yyy";
|
|
846
|
-
scope.$digest();
|
|
847
|
-
|
|
848
759
|
expect(element.text()).toEqual("a|b|c|");
|
|
849
760
|
});
|
|
850
761
|
|
|
@@ -860,8 +771,6 @@ describe("ngRepeat", () => {
|
|
|
860
771
|
["a", "b"],
|
|
861
772
|
["c", "d"],
|
|
862
773
|
];
|
|
863
|
-
scope.$digest();
|
|
864
|
-
|
|
865
774
|
expect(element.text()).toEqual("a|b|Xc|d|X");
|
|
866
775
|
});
|
|
867
776
|
|
|
@@ -872,8 +781,6 @@ describe("ngRepeat", () => {
|
|
|
872
781
|
scope.array = ["a", "b", "c"];
|
|
873
782
|
scope.array.foo = "23";
|
|
874
783
|
scope.array.bar = function () {};
|
|
875
|
-
scope.$digest();
|
|
876
|
-
|
|
877
784
|
expect(element.text()).toBe("a|b|c|");
|
|
878
785
|
});
|
|
879
786
|
|
|
@@ -884,8 +791,6 @@ describe("ngRepeat", () => {
|
|
|
884
791
|
scope.array = ["a", "b"];
|
|
885
792
|
scope.array[4] = "c";
|
|
886
793
|
scope.array[6] = "d";
|
|
887
|
-
scope.$digest();
|
|
888
|
-
|
|
889
794
|
expect(element.text()).toBe("a|b|||c||d|");
|
|
890
795
|
});
|
|
891
796
|
|
|
@@ -894,8 +799,6 @@ describe("ngRepeat", () => {
|
|
|
894
799
|
'<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
|
|
895
800
|
)(scope);
|
|
896
801
|
scope.array = ["a", 1, null, undefined, {}];
|
|
897
|
-
scope.$digest();
|
|
898
|
-
|
|
899
802
|
expect(element.text()).toMatch(/a\|1\|\|\|\{\s*\}\|/);
|
|
900
803
|
});
|
|
901
804
|
|
|
@@ -904,15 +807,11 @@ describe("ngRepeat", () => {
|
|
|
904
807
|
'<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
|
|
905
808
|
)(scope);
|
|
906
809
|
scope.array = ["a", "b"];
|
|
907
|
-
scope.$digest();
|
|
908
|
-
|
|
909
810
|
let lis = element.find("li");
|
|
910
811
|
lis.eq(0).data("mark", "a");
|
|
911
812
|
lis.eq(1).data("mark", "b");
|
|
912
813
|
|
|
913
814
|
scope.array = ["b", "a"];
|
|
914
|
-
scope.$digest();
|
|
915
|
-
|
|
916
815
|
lis = element.find("li");
|
|
917
816
|
expect(lis.eq(0).data("mark")).toEqual("b");
|
|
918
817
|
expect(lis.eq(1).data("mark")).toEqual("a");
|
|
@@ -1087,8 +986,6 @@ describe("ngRepeat", () => {
|
|
|
1087
986
|
"</div>",
|
|
1088
987
|
)(scope);
|
|
1089
988
|
|
|
1090
|
-
scope.$digest();
|
|
1091
|
-
|
|
1092
989
|
const ends = element.find("p");
|
|
1093
990
|
expect(ends.length).toBe(3);
|
|
1094
991
|
|
|
@@ -1097,8 +994,6 @@ describe("ngRepeat", () => {
|
|
|
1097
994
|
element[0].insertBefore(extra, ends[1]);
|
|
1098
995
|
|
|
1099
996
|
scope.values.splice(1, 1);
|
|
1100
|
-
scope.$digest();
|
|
1101
|
-
|
|
1102
997
|
// expect the strong tag to be removed too
|
|
1103
998
|
expect(
|
|
1104
999
|
Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
|
|
@@ -1116,8 +1011,6 @@ describe("ngRepeat", () => {
|
|
|
1116
1011
|
"</div>",
|
|
1117
1012
|
)(scope);
|
|
1118
1013
|
|
|
1119
|
-
scope.$digest();
|
|
1120
|
-
|
|
1121
1014
|
const ends = element.find("p");
|
|
1122
1015
|
expect(ends.length).toBe(3);
|
|
1123
1016
|
|
|
@@ -1127,8 +1020,6 @@ describe("ngRepeat", () => {
|
|
|
1127
1020
|
|
|
1128
1021
|
// move the third block to the beginning
|
|
1129
1022
|
scope.values.unshift(scope.values.pop());
|
|
1130
|
-
scope.$digest();
|
|
1131
|
-
|
|
1132
1023
|
// expect the strong tag to be moved too
|
|
1133
1024
|
expect(
|
|
1134
1025
|
Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
|
|
@@ -1164,13 +1055,11 @@ describe("ngRepeat", () => {
|
|
|
1164
1055
|
d = 4;
|
|
1165
1056
|
|
|
1166
1057
|
scope.items = [a, b, c];
|
|
1167
|
-
scope.$digest();
|
|
1168
1058
|
lis = element.find("li");
|
|
1169
1059
|
});
|
|
1170
1060
|
|
|
1171
1061
|
it("should preserve the order of elements", () => {
|
|
1172
1062
|
scope.items = [a, c, d];
|
|
1173
|
-
scope.$digest();
|
|
1174
1063
|
const newElements = element.find("li");
|
|
1175
1064
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1176
1065
|
expect(newElements[1]).toEqual(lis[2]);
|
|
@@ -1179,47 +1068,39 @@ describe("ngRepeat", () => {
|
|
|
1179
1068
|
|
|
1180
1069
|
it("should throw error on adding existing duplicates and recover", () => {
|
|
1181
1070
|
scope.items = [a, a, a];
|
|
1182
|
-
scope.$digest();
|
|
1183
1071
|
expect(logs.shift().message).toMatch(/Duplicate key/);
|
|
1184
1072
|
|
|
1185
1073
|
// recover
|
|
1186
1074
|
scope.items = [a];
|
|
1187
|
-
scope.$digest();
|
|
1188
1075
|
let newElements = element.find("li");
|
|
1189
1076
|
expect(newElements.length).toEqual(1);
|
|
1190
1077
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1191
1078
|
|
|
1192
1079
|
scope.items = [];
|
|
1193
|
-
scope.$digest();
|
|
1194
1080
|
newElements = element.find("li");
|
|
1195
1081
|
expect(newElements.length).toEqual(0);
|
|
1196
1082
|
});
|
|
1197
1083
|
|
|
1198
1084
|
it("should throw error on new duplicates and recover", () => {
|
|
1199
1085
|
scope.items = [d, d, d];
|
|
1200
|
-
scope.$digest();
|
|
1201
1086
|
expect(logs.shift().message).toMatch(/Duplicate key/);
|
|
1202
1087
|
|
|
1203
1088
|
// recover
|
|
1204
1089
|
scope.items = [a];
|
|
1205
|
-
scope.$digest();
|
|
1206
1090
|
let newElements = element.find("li");
|
|
1207
1091
|
expect(newElements.length).toEqual(1);
|
|
1208
1092
|
expect(newElements[0]).toEqual(lis[0]);
|
|
1209
1093
|
|
|
1210
1094
|
scope.items = [];
|
|
1211
|
-
scope.$digest();
|
|
1212
1095
|
newElements = element.find("li");
|
|
1213
1096
|
expect(newElements.length).toEqual(0);
|
|
1214
1097
|
});
|
|
1215
1098
|
|
|
1216
1099
|
it("should reverse items when the collection is reversed", () => {
|
|
1217
1100
|
scope.items = [a, b, c];
|
|
1218
|
-
scope.$digest();
|
|
1219
1101
|
lis = element.find("li");
|
|
1220
1102
|
|
|
1221
1103
|
scope.items = [c, b, a];
|
|
1222
|
-
scope.$digest();
|
|
1223
1104
|
const newElements = element.find("li");
|
|
1224
1105
|
expect(newElements.length).toEqual(3);
|
|
1225
1106
|
expect(newElements[0]).toEqual(lis[2]);
|
|
@@ -1232,12 +1113,10 @@ describe("ngRepeat", () => {
|
|
|
1232
1113
|
// model that is composed of primitives.
|
|
1233
1114
|
|
|
1234
1115
|
scope.items = ["hello", "cau", "ahoj"];
|
|
1235
|
-
scope.$digest();
|
|
1236
1116
|
lis = element.find("li");
|
|
1237
1117
|
lis[2].id = "yes";
|
|
1238
1118
|
|
|
1239
1119
|
scope.items = ["ahoj", "hello", "cau"];
|
|
1240
|
-
scope.$digest();
|
|
1241
1120
|
const newLis = element.find("li");
|
|
1242
1121
|
expect(newLis.length).toEqual(3);
|
|
1243
1122
|
expect(newLis[0]).toEqual(lis[2]);
|
|
@@ -1247,15 +1126,9 @@ describe("ngRepeat", () => {
|
|
|
1247
1126
|
|
|
1248
1127
|
it("should be stable even if the collection is initially undefined", () => {
|
|
1249
1128
|
scope.items = undefined;
|
|
1250
|
-
scope.$digest();
|
|
1251
|
-
|
|
1252
1129
|
scope.items = [{ name: "A" }, { name: "B" }, { name: "C" }];
|
|
1253
|
-
scope.$digest();
|
|
1254
|
-
|
|
1255
1130
|
lis = element.find("li");
|
|
1256
1131
|
scope.items.shift();
|
|
1257
|
-
scope.$digest();
|
|
1258
|
-
|
|
1259
1132
|
const newLis = element.find("li");
|
|
1260
1133
|
expect(newLis.length).toBe(2);
|
|
1261
1134
|
expect(newLis[0]).toBe(lis[1]);
|
|
@@ -1281,7 +1154,6 @@ describe("ngRepeat", () => {
|
|
|
1281
1154
|
element = $compile(
|
|
1282
1155
|
'<div><div ng-repeat="i in [1,2]" elm-trans>{{i}}</div></div>',
|
|
1283
1156
|
)(scope);
|
|
1284
|
-
scope.$digest();
|
|
1285
1157
|
expect(element.text()).toBe("[[1]][[2]]");
|
|
1286
1158
|
});
|
|
1287
1159
|
|
|
@@ -1295,7 +1167,6 @@ describe("ngRepeat", () => {
|
|
|
1295
1167
|
scope = injector.get("$rootScope");
|
|
1296
1168
|
$templateCache = injector.get("$templateCache");
|
|
1297
1169
|
$templateCache.set("test.html", "hello");
|
|
1298
|
-
scope.$digest();
|
|
1299
1170
|
setTimeout(() => {
|
|
1300
1171
|
expect(element.text()).toBe("hellohello");
|
|
1301
1172
|
done();
|
|
@@ -1306,7 +1177,6 @@ describe("ngRepeat", () => {
|
|
|
1306
1177
|
element = $compile(
|
|
1307
1178
|
'<div><div ng-repeat="i in [1,2,3,4]" ng-if="i % 2 === 0">{{i}};</div></div>',
|
|
1308
1179
|
)(scope);
|
|
1309
|
-
scope.$digest();
|
|
1310
1180
|
expect(element.text()).toBe("2;4;");
|
|
1311
1181
|
});
|
|
1312
1182
|
});
|
|
@@ -1325,10 +1195,8 @@ describe("ngRepeat", () => {
|
|
|
1325
1195
|
"</div>",
|
|
1326
1196
|
)(scope);
|
|
1327
1197
|
|
|
1328
|
-
scope.$digest();
|
|
1329
1198
|
expect(element.text()).toEqual("T1:D1;T2:D2;");
|
|
1330
1199
|
scope.books.push({ title: "T3", description: "D3" });
|
|
1331
|
-
scope.$digest();
|
|
1332
1200
|
expect(element.text()).toEqual("T1:D1;T2:D2;T3:D3;");
|
|
1333
1201
|
});
|
|
1334
1202
|
|
|
@@ -1343,12 +1211,10 @@ describe("ngRepeat", () => {
|
|
|
1343
1211
|
"</div>",
|
|
1344
1212
|
)(scope);
|
|
1345
1213
|
|
|
1346
|
-
scope.$digest();
|
|
1347
1214
|
expect(element.find("div").length).toBe(6);
|
|
1348
1215
|
scope.values.shift();
|
|
1349
1216
|
scope.values.push(4);
|
|
1350
1217
|
|
|
1351
|
-
scope.$digest();
|
|
1352
1218
|
expect(element.find("div").length).toBe(6);
|
|
1353
1219
|
expect(element.text()).not.toContain("if:1;");
|
|
1354
1220
|
});
|
|
@@ -1401,7 +1267,6 @@ describe("ngRepeat", () => {
|
|
|
1401
1267
|
const element = $compile('<iso><span ng-bind="val"></span></iso>')(
|
|
1402
1268
|
$rootScope,
|
|
1403
1269
|
);
|
|
1404
|
-
$rootScope.$digest();
|
|
1405
1270
|
expect(element.text().trim()).toEqual("transcluded content");
|
|
1406
1271
|
dealoc(element);
|
|
1407
1272
|
});
|
|
@@ -1420,7 +1285,6 @@ describe("ngRepeat", () => {
|
|
|
1420
1285
|
const element = $compile(
|
|
1421
1286
|
'<div><span ng-repeat="a in [1]"><span assert-a></span></span></div>',
|
|
1422
1287
|
)($rootScope);
|
|
1423
|
-
$rootScope.$digest();
|
|
1424
1288
|
dealoc(element);
|
|
1425
1289
|
});
|
|
1426
1290
|
});
|
|
@@ -1492,10 +1356,10 @@ describe("ngRepeat", () => {
|
|
|
1492
1356
|
// ),
|
|
1493
1357
|
// )(scope);
|
|
1494
1358
|
|
|
1495
|
-
//
|
|
1359
|
+
// ; // re-enable the animations;
|
|
1496
1360
|
|
|
1497
1361
|
// scope.items = ["1", "2", "3"];
|
|
1498
|
-
//
|
|
1362
|
+
// ;
|
|
1499
1363
|
|
|
1500
1364
|
// item = $animate.queue.shift();
|
|
1501
1365
|
// expect(item.event).toBe("enter");
|
|
@@ -1527,7 +1391,7 @@ describe("ngRepeat", () => {
|
|
|
1527
1391
|
// )(scope);
|
|
1528
1392
|
|
|
1529
1393
|
// scope.items = ["1", "2", "3"];
|
|
1530
|
-
//
|
|
1394
|
+
// ;
|
|
1531
1395
|
|
|
1532
1396
|
// item = $animate.queue.shift();
|
|
1533
1397
|
// expect(item.event).toBe("enter");
|
|
@@ -1542,7 +1406,7 @@ describe("ngRepeat", () => {
|
|
|
1542
1406
|
// expect(item.element.text()).toBe("3");
|
|
1543
1407
|
|
|
1544
1408
|
// scope.items = ["1", "3"];
|
|
1545
|
-
//
|
|
1409
|
+
// ;
|
|
1546
1410
|
|
|
1547
1411
|
// item = $animate.queue.shift();
|
|
1548
1412
|
// expect(item.event).toBe("leave");
|
|
@@ -1579,11 +1443,11 @@ describe("ngRepeat", () => {
|
|
|
1579
1443
|
// )(scope);
|
|
1580
1444
|
|
|
1581
1445
|
// scope.items = ["1", "2", "3"];
|
|
1582
|
-
//
|
|
1446
|
+
// ;
|
|
1583
1447
|
// expect(element.text()).toBe("123");
|
|
1584
1448
|
|
|
1585
1449
|
// scope.items = ["1", "3"];
|
|
1586
|
-
//
|
|
1450
|
+
// ;
|
|
1587
1451
|
|
|
1588
1452
|
// expect(element.text()).toBe("123"); // the original order should be preserved
|
|
1589
1453
|
// $animate.flush();
|
|
@@ -1608,7 +1472,7 @@ describe("ngRepeat", () => {
|
|
|
1608
1472
|
// )(scope);
|
|
1609
1473
|
|
|
1610
1474
|
// scope.items = ["1", "2", "3"];
|
|
1611
|
-
//
|
|
1475
|
+
// ;
|
|
1612
1476
|
|
|
1613
1477
|
// item = $animate.queue.shift();
|
|
1614
1478
|
// expect(item.event).toBe("enter");
|
|
@@ -1623,7 +1487,7 @@ describe("ngRepeat", () => {
|
|
|
1623
1487
|
// expect(item.element.text()).toBe("3");
|
|
1624
1488
|
|
|
1625
1489
|
// scope.items = ["2", "3", "1"];
|
|
1626
|
-
//
|
|
1490
|
+
// ;
|
|
1627
1491
|
|
|
1628
1492
|
// item = $animate.queue.shift();
|
|
1629
1493
|
// expect(item.event).toBe("move");
|