retain SVG namespace inside each blocks

pull/38/head
Rich Harris 8 years ago
parent 621fc92b1c
commit da980983c6

@ -72,7 +72,7 @@ export default {
const params = generator.current.params + `, ${listName}, ${node.context}, ${indexName}`;
generator.current = {
generator.push({
useAnchor: false,
name: renderer,
target: 'target',
@ -100,11 +100,11 @@ export default {
counter: counter(),
parent: generator.current
};
});
},
leave ( generator ) {
generator.addRenderer( generator.current );
generator.current = generator.current.parent;
generator.pop();
}
};

@ -148,7 +148,7 @@ export default {
if ( local.update.length ) generator.current.updateStatements.push( local.update.join( '\n' ) );
generator.current.teardownStatements.push( local.teardown.join( '\n' ) );
generator.current = Object.assign( {}, generator.current, {
generator.push({
isComponent,
namespace: local.namespace,
target: name,
@ -162,7 +162,7 @@ export default {
const name = generator.current.target;
const isComponent = generator.current.isComponent;
generator.current = generator.current.parent;
generator.pop();
if ( isComponent ) return;

@ -0,0 +1,15 @@
export default {
html: `
<svg>
<circle cx='0' cy='100' r='100' fill='red'/><circle cx='100' cy='100' r='100' fill='green'/><circle cx='200' cy='100' r='100' fill='blue'/>
</svg>
`,
test ( assert, component, target ) {
const circles = target.querySelectorAll( 'circle' );
assert.equal( circles[0].namespaceURI, 'http://www.w3.org/2000/svg' );
assert.equal( circles[1].namespaceURI, 'http://www.w3.org/2000/svg' );
assert.equal( circles[2].namespaceURI, 'http://www.w3.org/2000/svg' );
component.teardown();
}
};

@ -0,0 +1,15 @@
<svg>
{{#each colours as colour, i}}
<circle cx='{{i * 100}}' cy='100' r='100' fill='{{colour}}'/>
{{/each}}
</svg>
<script>
export default {
data () {
return {
colours: [ 'red', 'green', 'blue' ]
}
}
};
</script>

After

Width:  |  Height:  |  Size: 235 B

Loading…
Cancel
Save