@@ -358,7 +358,7 @@ describe('parser', function() {
358
358
forEach ( [ 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 20 , 42 , 99 ] , function ( pathLength ) {
359
359
it ( 'should resolve nested paths of length ' + pathLength , function ( ) {
360
360
// Create a nested object {x2: {x3: {x4: ... {x[n]: 42} ... }}}.
361
- var obj = 42 ;
361
+ var obj = 42 , locals = { } ;
362
362
for ( var i = pathLength ; i >= 2 ; i -- ) {
363
363
var newObj = { } ;
364
364
newObj [ 'x' + i ] = obj ;
@@ -371,6 +371,8 @@ describe('parser', function() {
371
371
path += '.x' + i ;
372
372
}
373
373
expect ( scope . $eval ( path ) ) . toBe ( 42 ) ;
374
+ locals [ 'x' + pathLength ] = 'not 42'
375
+ expect ( scope . $eval ( path , locals ) ) . toBe ( 42 ) ;
374
376
} ) ;
375
377
} ) ;
376
378
@@ -938,6 +940,13 @@ describe('parser', function() {
938
940
expect ( $parse ( 'a.b' ) ( { a : { b : 0 } } , { a : null } ) ) . toEqual ( undefined ) ;
939
941
expect ( $parse ( 'a.b.c' ) ( { a : null } , { a : { b : { c : 1 } } } ) ) . toEqual ( 1 ) ;
940
942
} ) ) ;
943
+
944
+ it ( 'should not use locals to resolve object properties' , inject ( function ( $parse ) {
945
+ expect ( $parse ( 'a[0].b' ) ( { a : [ { b : 'scope' } ] } , { b : 'locals' } ) ) . toBe ( 'scope' ) ;
946
+ expect ( $parse ( 'a[0]["b"]' ) ( { a : [ { b : 'scope' } ] } , { b : 'locals' } ) ) . toBe ( 'scope' ) ;
947
+ expect ( $parse ( 'a[0][0].b' ) ( { a : [ [ { b : 'scope' } ] ] } , { b : 'locals' } ) ) . toBe ( 'scope' ) ;
948
+ expect ( $parse ( 'a[0].b.c' ) ( { a : [ { b : { c : 'scope' } } ] } , { b : { c : 'locals' } } ) ) . toBe ( 'scope' ) ;
949
+ } ) ) ;
941
950
} ) ;
942
951
943
952
describe ( 'literal' , function ( ) {
0 commit comments