mirror of https://github.com/sveltejs/svelte
commit
9af5c274f4
@ -0,0 +1,28 @@
|
|||||||
|
export default {
|
||||||
|
data: {
|
||||||
|
todos: [
|
||||||
|
{ id: 123, description: 'implement keyed each blocks' },
|
||||||
|
{ id: 234, description: 'implement client-side hydration' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
html: '<p>implement keyed each blocks</p><p>implement client-side hydration</p>',
|
||||||
|
|
||||||
|
test ( assert, component, target ) {
|
||||||
|
const [ p1, p2 ] = target.querySelectorAll( 'p' );
|
||||||
|
|
||||||
|
component.set({
|
||||||
|
todos: [
|
||||||
|
{ id: 234, description: 'implement client-side hydration' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
assert.htmlEqual( target.innerHTML, '<p>implement client-side hydration</p>' );
|
||||||
|
|
||||||
|
const [ p3 ] = target.querySelectorAll( 'p' );
|
||||||
|
|
||||||
|
assert.ok( !target.contains( p1 ), 'first <p> element should be removed' );
|
||||||
|
assert.equal( p2, p3, 'second <p> element should be retained' );
|
||||||
|
|
||||||
|
component.teardown();
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,3 @@
|
|||||||
|
{{#each todos as todo @id}}
|
||||||
|
<p>{{todo.description}}</p>
|
||||||
|
{{/each}}
|
@ -0,0 +1,3 @@
|
|||||||
|
{{#each todos as todo @id}}
|
||||||
|
<p>{{todo}}</p>
|
||||||
|
{{/each}}
|
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"html": {
|
||||||
|
"start": 0,
|
||||||
|
"end": 54,
|
||||||
|
"type": "Fragment",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"start": 0,
|
||||||
|
"end": 54,
|
||||||
|
"type": "EachBlock",
|
||||||
|
"expression": {
|
||||||
|
"start": 8,
|
||||||
|
"end": 13,
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "todos"
|
||||||
|
},
|
||||||
|
"context": "todo",
|
||||||
|
"key": "id",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"start": 29,
|
||||||
|
"end": 44,
|
||||||
|
"type": "Element",
|
||||||
|
"name": "p",
|
||||||
|
"attributes": [],
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"start": 32,
|
||||||
|
"end": 40,
|
||||||
|
"type": "MustacheTag",
|
||||||
|
"expression": {
|
||||||
|
"start": 34,
|
||||||
|
"end": 38,
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "todo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"css": null,
|
||||||
|
"js": null
|
||||||
|
}
|
Loading…
Reference in new issue