| 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);
 | 
|    }
 | 
|  }
 | 
| 
 |