From 02e55e8f7afb96e7027459b95b42aef1fc2cb906 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Wed, 12 Apr 2017 19:55:04 -0400 Subject: [PATCH] update select value bindings at the end of the cycle (fixes #476) --- .../dom/visitors/Element/Element.js | 20 ++++++----- .../samples/binding-select-late/_config.js | 34 +++++++++++++++++++ .../samples/binding-select-late/main.html | 7 ++++ 3 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 test/runtime/samples/binding-select-late/_config.js create mode 100644 test/runtime/samples/binding-select-late/main.html diff --git a/src/generators/dom/visitors/Element/Element.js b/src/generators/dom/visitors/Element/Element.js index 9b451f1348..20d4404638 100644 --- a/src/generators/dom/visitors/Element/Element.js +++ b/src/generators/dom/visitors/Element/Element.js @@ -63,7 +63,7 @@ export default function visitElement ( generator, block, state, node ) { .forEach( attribute => { // +

selected: nothing

+ `, + + test ( assert, component, target ) { + component.set({ + items: [ 'one', 'two', 'three' ], + selected: 'two' + }); + + const options = target.querySelectorAll( 'option' ); + assert.ok( !options[0].selected ); + assert.ok( options[1].selected ); + assert.ok( !options[2].selected ); + + assert.htmlEqual( target.innerHTML, ` + +

selected: two

+ ` ); + + component.destroy(); + } +}; diff --git a/test/runtime/samples/binding-select-late/main.html b/test/runtime/samples/binding-select-late/main.html new file mode 100644 index 0000000000..0bbebef662 --- /dev/null +++ b/test/runtime/samples/binding-select-late/main.html @@ -0,0 +1,7 @@ + + +

selected: {{selected || 'nothing'}}