Skip to content

Commit 1de8228

Browse files
committed
proper handlig of $element in filters
1 parent 9abd10e commit 1de8228

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

src/directives.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ function compileBindTemplate(template){
7676
});
7777
bindTemplateCache[template] = fn = function(element){
7878
var parts = [], self = this,
79-
oldElement = this.hasOwnProperty('$element') ? this.$element : undefined;
80-
this.$element = element;
79+
oldElement = this.hasOwnProperty('$element') ? self.$element : undefined;
80+
self.$element = element;
8181
for ( var i = 0; i < bindings.length; i++) {
8282
var value = bindings[i].call(self, element);
8383
if (isElement(value))
@@ -86,7 +86,7 @@ function compileBindTemplate(template){
8686
value = toJson(value, true);
8787
parts.push(value);
8888
};
89-
this.$element = oldElement;
89+
self.$element = oldElement;
9090
return parts.join('');
9191
};
9292
}

test/directivesSpec.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,14 @@ describe("directives", function(){
7373
});
7474

7575
it('should have $element set to current bind element', function(){
76-
angularFilter.myFilter = function(){
77-
this.$element.text('HELLO');
76+
var innerText;
77+
angularFilter.myFilter = function(text){
78+
innerText = this.$element.text();
79+
return text;
7880
};
79-
var scope = compile('<div>before<div ng:bind-template="{{0|myFilter}}"></div>after</div>');
81+
var scope = compile('<div>before<div ng:bind-template="{{\'HELLO\'|myFilter}}">INNER</div>after</div>');
8082
expect(scope.$element.text()).toEqual("beforeHELLOafter");
83+
expect(innerText).toEqual('INNER');
8184
});
8285

8386
});

0 commit comments

Comments
 (0)