From 1de82283dbf1bed2fc04700584dc1123b1e159fe Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Thu, 15 Jul 2010 13:35:00 -0700 Subject: proper handlig of $element in filters --- src/directives.js | 6 +++--- test/directivesSpec.js | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/directives.js b/src/directives.js index b57e5ecd..04831131 100644 --- a/src/directives.js +++ b/src/directives.js @@ -76,8 +76,8 @@ function compileBindTemplate(template){ }); bindTemplateCache[template] = fn = function(element){ var parts = [], self = this, - oldElement = this.hasOwnProperty('$element') ? this.$element : undefined; - this.$element = element; + oldElement = this.hasOwnProperty('$element') ? self.$element : undefined; + self.$element = element; for ( var i = 0; i < bindings.length; i++) { var value = bindings[i].call(self, element); if (isElement(value)) @@ -86,7 +86,7 @@ function compileBindTemplate(template){ value = toJson(value, true); parts.push(value); }; - this.$element = oldElement; + self.$element = oldElement; return parts.join(''); }; } diff --git a/test/directivesSpec.js b/test/directivesSpec.js index b6ccf764..fb1e868a 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -73,11 +73,14 @@ describe("directives", function(){ }); it('should have $element set to current bind element', function(){ - angularFilter.myFilter = function(){ - this.$element.text('HELLO'); + var innerText; + angularFilter.myFilter = function(text){ + innerText = this.$element.text(); + return text; }; - var scope = compile('