pull/8329/head
Yuichiro Yamashita 4 years ago
parent 487fedce6c
commit 74330094c8

@ -854,8 +854,9 @@ export default class ElementWrapper extends Wrapper {
} }
block.chunks.mount.push(b` block.chunks.mount.push(b`
(${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value); 'value' in ${data} && (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);
`); `);
block.chunks.update.push(b` block.chunks.update.push(b`
if (${block.renderer.dirty(Array.from(dependencies))} && 'value' in ${data}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value); if (${block.renderer.dirty(Array.from(dependencies))} && 'value' in ${data}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);
`); `);

@ -0,0 +1,12 @@
export default {
test({ assert, component, target }) {
const options = target.querySelectorAll('option');
assert.equal(options[0].selected, true);
assert.equal(options[1].selected, false);
component.value = ["2"];
assert.equal(options[0].selected, false);
assert.equal(options[1].selected, true);
}
};

@ -0,0 +1,8 @@
<script>
import Select from './select.svelte';
export let value = ['1'];
export let other = {};
</script>
<Select {value} {other} />

@ -0,0 +1,9 @@
<script>
export let value;
export let other;
</script>
<select multiple bind:value {...other}>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>

@ -0,0 +1,8 @@
<script>
export let attrs;
</script>
<select multiple {...attrs}>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>

@ -0,0 +1,13 @@
export default {
test({ assert, component, target }) {
const options = target.querySelectorAll('option');
assert.equal(options[0].selected, true);
assert.equal(options[1].selected, false);
// Shouldn't change the value because the value is not bound.
component.value = ["2"];
assert.equal(options[0].selected, true);
assert.equal(options[1].selected, false);
}
};

@ -0,0 +1,7 @@
<script>
import Select from './select.svelte';
export let attrs = { value: ['1'] };
</script>
<Select {attrs} />
Loading…
Cancel
Save