mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-01 12:33:37 +08:00
fix(compiler): Allow startingTag method to handle text / comment nodes
This commit is contained in:
committed by
Misko Hevery
parent
6194e002e2
commit
3d0f11212f
@@ -777,9 +777,18 @@ function startingTag(element) {
|
||||
// are not allowed to have children. So we just ignore it.
|
||||
element.html('');
|
||||
} catch(e) {}
|
||||
return jqLite('<div>').append(element).html().
|
||||
match(/^(<[^>]+>)/)[1].
|
||||
replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); });
|
||||
// As Per DOM Standards
|
||||
var TEXT_NODE = 3;
|
||||
var elemHtml = jqLite('<div>').append(element).html();
|
||||
try {
|
||||
return element[0].nodeType === TEXT_NODE ? lowercase(elemHtml) :
|
||||
elemHtml.
|
||||
match(/^(<[^>]+>)/)[1].
|
||||
replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); });
|
||||
} catch(e) {
|
||||
return lowercase(elemHtml);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -673,6 +673,13 @@ describe('angular', function() {
|
||||
toBe('<ng-abc x="2A">');
|
||||
});
|
||||
});
|
||||
|
||||
describe('startingTag', function() {
|
||||
it('should allow passing in Nodes instead of Elements', function() {
|
||||
var txtNode = document.createTextNode('some text');
|
||||
expect(startingTag(txtNode)).toBe('some text');
|
||||
});
|
||||
});
|
||||
|
||||
describe('snake_case', function(){
|
||||
it('should convert to snake_case', function() {
|
||||
|
||||
Reference in New Issue
Block a user