@@ -19,7 +19,9 @@ void main() {
19
19
..type (_MultiplyFilter )
20
20
..type (_ListHeadFilter )
21
21
..type (_ListTailFilter )
22
- ..type (_SortFilter );
22
+ ..type (_SortFilter )
23
+ ..type (_IdentityFilter )
24
+ ..type (_MapKeys );
23
25
}));
24
26
25
27
describe ('AST Bridge' , () {
@@ -204,6 +206,29 @@ void main() {
204
206
expect (logger).toEqual (['sort' ]);
205
207
logger.clear ();
206
208
}));
209
+
210
+ iit ('should support maps in filters' , inject ((Logger logger, Map context,
211
+ RootScope rootScope,
212
+ AstParser parser,
213
+ FilterMap filters) {
214
+ context['a' ] = {'foo' : 'bar' };
215
+ rootScope.watch (
216
+ parser ('a | identity | keys' , filters: filters),
217
+ (value, previous) => logger (value));
218
+ rootScope.digest ();
219
+ expect (logger).toEqual (['identity' , 'keys' , ['foo' ]]);
220
+ logger.clear ();
221
+
222
+ rootScope.digest ();
223
+ expect (logger).toEqual ([]);
224
+ logger.clear ();
225
+
226
+ context['a' ]['bar' ] = 'baz' ;
227
+ rootScope.digest ();
228
+ expect (logger).toEqual (['identity' , 'keys' , ['foo' , 'bar' ]]);
229
+ logger.clear ();
230
+ }));
231
+
207
232
});
208
233
209
234
@@ -1435,6 +1460,26 @@ void main() {
1435
1460
});
1436
1461
}
1437
1462
1463
+ @NgFilter (name: 'identity' )
1464
+ class _IdentityFilter {
1465
+ Logger logger;
1466
+ _IdentityFilter (this .logger);
1467
+ call (v) {
1468
+ logger ('identity' );
1469
+ return v;
1470
+ }
1471
+ }
1472
+
1473
+ @NgFilter (name: 'keys' )
1474
+ class _MapKeys {
1475
+ Logger logger;
1476
+ _MapKeys (this .logger);
1477
+ call (Map m) {
1478
+ logger ('keys' );
1479
+ return m.keys;
1480
+ }
1481
+ }
1482
+
1438
1483
@NgFilter (name: 'multiply' )
1439
1484
class _MultiplyFilter {
1440
1485
call (a, b) => a * b;
@@ -1443,18 +1488,17 @@ class _MultiplyFilter {
1443
1488
@NgFilter (name: 'listHead' )
1444
1489
class _ListHeadFilter {
1445
1490
Logger logger;
1446
- _ListHeadFilter (Logger this .logger);
1491
+ _ListHeadFilter (this .logger);
1447
1492
call (list, head) {
1448
1493
logger ('listHead' );
1449
1494
return [head]..addAll (list);
1450
1495
}
1451
1496
}
1452
1497
1453
-
1454
1498
@NgFilter (name: 'listTail' )
1455
1499
class _ListTailFilter {
1456
1500
Logger logger;
1457
- _ListTailFilter (Logger this .logger);
1501
+ _ListTailFilter (this .logger);
1458
1502
call (list, tail) {
1459
1503
logger ('listTail' );
1460
1504
return new List .from (list)..add (tail);
@@ -1464,7 +1508,7 @@ class _ListTailFilter {
1464
1508
@NgFilter (name: 'sort' )
1465
1509
class _SortFilter {
1466
1510
Logger logger;
1467
- _SortFilter (Logger this .logger);
1511
+ _SortFilter (this .logger);
1468
1512
call (list) {
1469
1513
logger ('sort' );
1470
1514
return new List .from (list)..sort ();
0 commit comments