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 [Element]s that behave as templates. */ | 7 /** Extensions to [Element]s that behave as templates. */ |
8 class TemplateBindExtension extends NodeBindExtension { | 8 class TemplateBindExtension extends NodeBindExtension { |
9 var _model; | 9 var _model; |
10 BindingDelegate _bindingDelegate; | 10 BindingDelegate _bindingDelegate; |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 _setModelScheduled = false; | 177 _setModelScheduled = false; |
178 var map = _getBindings(_node, _bindingDelegate); | 178 var map = _getBindings(_node, _bindingDelegate); |
179 _processBindings(_node, map, _model); | 179 _processBindings(_node, map, _model); |
180 } | 180 } |
181 | 181 |
182 _refChanged() { | 182 _refChanged() { |
183 if (_iterator == null || _refContent == templateBind(_ref).content) return; | 183 if (_iterator == null || _refContent == templateBind(_ref).content) return; |
184 | 184 |
185 _refContent = null; | 185 _refContent = null; |
186 _iterator._valueChanged(null); | 186 _iterator._valueChanged(null); |
187 _iterator._updateIteratedValue(null); | 187 _iterator._updateIteratedValue(this._iterator._getUpdatedValue()); |
188 } | 188 } |
189 | 189 |
190 void clear() { | 190 void clear() { |
191 _model = null; | 191 _model = null; |
192 _bindingDelegate = null; | 192 _bindingDelegate = null; |
193 if (bindings != null) { | 193 if (bindings != null) { |
194 var ref = bindings.remove('ref'); | 194 var ref = bindings.remove('ref'); |
195 if (ref != null) ref.close(); | 195 if (ref != null) ref.close(); |
196 } | 196 } |
197 _refContent = null; | 197 _refContent = null; |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 } | 527 } |
528 | 528 |
529 // Note: JS code tests that getElementById is present. We can't do that | 529 // Note: JS code tests that getElementById is present. We can't do that |
530 // easily, so instead check for the types known to implement it. | 530 // easily, so instead check for the types known to implement it. |
531 bool _hasGetElementById(Node node) => | 531 bool _hasGetElementById(Node node) => |
532 node is Document || node is ShadowRoot || node is SvgSvgElement; | 532 node is Document || node is ShadowRoot || node is SvgSvgElement; |
533 | 533 |
534 final Expando<_InstanceExtension> _instanceExtension = new Expando(); | 534 final Expando<_InstanceExtension> _instanceExtension = new Expando(); |
535 | 535 |
536 final _isStagingDocument = new Expando(); | 536 final _isStagingDocument = new Expando(); |
OLD | NEW |