| Index: pkg/template_binding/lib/src/select_element.dart | 
| diff --git a/pkg/template_binding/lib/src/select_element.dart b/pkg/template_binding/lib/src/select_element.dart | 
| index 432b0490b68ee47822a03b9800c31ec010ebf93c..2526507d4a02bf376edee5027a0d36b7ecfb5fe9 100644 | 
| --- a/pkg/template_binding/lib/src/select_element.dart | 
| +++ b/pkg/template_binding/lib/src/select_element.dart | 
| @@ -10,14 +10,20 @@ class _SelectElementExtension extends _ElementExtension { | 
|  | 
| SelectElement get _node => super._node; | 
|  | 
| -  NodeBinding bind(String name, model, [String path]) { | 
| +  bind(String name, value, {bool oneTime: false}) { | 
| if (name == 'selectedindex') name = 'selectedIndex'; | 
| if (name != 'selectedIndex' && name != 'value') { | 
| -      return super.bind(name, model, path); | 
| +      return super.bind(name, value, oneTime: oneTime); | 
| } | 
|  | 
| -    _self.unbind(name); | 
| +    // TODO(jmesserly): merge logic here with InputElement, it's the same except | 
| +    // for the addition of selectedIndex as a valid property name. | 
| _node.attributes.remove(name); | 
| -    return bindings[name] = new _SelectBinding(_node, name, model, path); | 
| +    if (oneTime) { | 
| +      return _InputBinding._updateProperty(_node, value, name); | 
| +    } | 
| + | 
| +    _self.unbind(name); | 
| +    return bindings[name] = new _InputBinding(_node, value, name); | 
| } | 
| } | 
|  |