mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-25 14:23:43 +00:00
proper handlig of $element in filters
This commit is contained in:
parent
9abd10e7b8
commit
1de82283db
2 changed files with 9 additions and 6 deletions
|
|
@ -76,8 +76,8 @@ function compileBindTemplate(template){
|
||||||
});
|
});
|
||||||
bindTemplateCache[template] = fn = function(element){
|
bindTemplateCache[template] = fn = function(element){
|
||||||
var parts = [], self = this,
|
var parts = [], self = this,
|
||||||
oldElement = this.hasOwnProperty('$element') ? this.$element : undefined;
|
oldElement = this.hasOwnProperty('$element') ? self.$element : undefined;
|
||||||
this.$element = element;
|
self.$element = element;
|
||||||
for ( var i = 0; i < bindings.length; i++) {
|
for ( var i = 0; i < bindings.length; i++) {
|
||||||
var value = bindings[i].call(self, element);
|
var value = bindings[i].call(self, element);
|
||||||
if (isElement(value))
|
if (isElement(value))
|
||||||
|
|
@ -86,7 +86,7 @@ function compileBindTemplate(template){
|
||||||
value = toJson(value, true);
|
value = toJson(value, true);
|
||||||
parts.push(value);
|
parts.push(value);
|
||||||
};
|
};
|
||||||
this.$element = oldElement;
|
self.$element = oldElement;
|
||||||
return parts.join('');
|
return parts.join('');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,11 +73,14 @@ describe("directives", function(){
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should have $element set to current bind element', function(){
|
it('should have $element set to current bind element', function(){
|
||||||
angularFilter.myFilter = function(){
|
var innerText;
|
||||||
this.$element.text('HELLO');
|
angularFilter.myFilter = function(text){
|
||||||
|
innerText = this.$element.text();
|
||||||
|
return text;
|
||||||
};
|
};
|
||||||
var scope = compile('<div>before<div ng:bind-template="{{0|myFilter}}"></div>after</div>');
|
var scope = compile('<div>before<div ng:bind-template="{{\'HELLO\'|myFilter}}">INNER</div>after</div>');
|
||||||
expect(scope.$element.text()).toEqual("beforeHELLOafter");
|
expect(scope.$element.text()).toEqual("beforeHELLOafter");
|
||||||
|
expect(innerText).toEqual('INNER');
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue