OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of template_binding; | 5 part of template_binding; |
6 | 6 |
7 /** Extensions to the [InputElement] API. */ | 7 /** Extensions to the [InputElement] API. */ |
8 class _InputElementExtension extends _ElementExtension { | 8 class _InputElementExtension extends _ElementExtension { |
9 _InputElementExtension(InputElement node) : super(node); | 9 _InputElementExtension(InputElement node) : super(node); |
10 | 10 |
11 InputElement get _node => super._node; | 11 InputElement get _node => super._node; |
12 | 12 |
13 NodeBinding bind(String name, model, [String path]) { | 13 Bindable bind(String name, value, {bool oneTime: false}) { |
14 if (name != 'value' && name != 'checked') { | 14 if (name != 'value' && name != 'checked') { |
15 return super.bind(name, model, path); | 15 return super.bind(name, value, oneTime: oneTime); |
| 16 } |
| 17 |
| 18 _node.attributes.remove(name); |
| 19 if (oneTime) { |
| 20 _InputBinding._updateProperty(_node, value, name); |
| 21 return null; |
16 } | 22 } |
17 | 23 |
18 _self.unbind(name); | 24 _self.unbind(name); |
19 _node.attributes.remove(name); | 25 return bindings[name] = new _InputBinding(_node, value, name); |
20 return bindings[name] = name == 'value' ? | |
21 new _ValueBinding(_node, model, path) : | |
22 new _CheckedBinding(_node, model, path); | |
23 } | 26 } |
24 } | 27 } |
OLD | NEW |