set select value after options have been created (#301)

pull/304/head
Rich Harris 9 years ago
parent 2a48dd9c97
commit 530277f9f8

@ -10,7 +10,7 @@ export default {
return Component.enter( generator, node );
}
const name = generator.current.getUniqueName( node.name );
const name = node.localName = generator.current.getUniqueName( node.name );
const local = {
name,
@ -111,6 +111,10 @@ export default {
return Component.leave( generator, node );
}
if ( generator.current.initialUpdate ) {
generator.current.builders.init.addBlock( generator.current.initialUpdate );
}
generator.pop();
}
};

@ -116,7 +116,7 @@ export default function createBinding ( generator, node, attribute, current, loc
}
` );
} else {
const updateElement = `${local.name}.${attribute.name} = ${contextual ? attribute.value : `root.${attribute.value}`}`;
const updateElement = `${local.name}.${attribute.name} = ${contextual ? attribute.value : `root.${attribute.value}`};`;
generator.uses.addEventListener = true;
generator.uses.removeEventListener = true;
@ -130,20 +130,16 @@ export default function createBinding ( generator, node, attribute, current, loc
}
addEventListener( ${local.name}, '${eventName}', ${handler} );
${updateElement};
` );
generator.current.initialUpdate = updateElement;
local.update.addLine(
`if ( !${local.name}_updating ) ${updateElement};`
`if ( !${local.name}_updating ) ${updateElement}`
);
generator.current.builders.teardown.addLine( deindent`
removeEventListener( ${local.name}, '${eventName}', ${handler} );
` );
}
if ( node.name === 'select' ) {
generator.hasComplexBindings = true;
local.init.addLine( `component._bindings.push( ${handler} )` );
}
}

Loading…
Cancel
Save