|
1197 | 1197 | * Обновляем (если нужно) ноду блока. |
1198 | 1198 | * @param {HTMLElement} node |
1199 | 1199 | * @param {object} updateOptions |
| 1200 | + * @package {boolean} updateOptions.toplevel |
| 1201 | + * @package {boolean} [updateOptions.parent_added] |
| 1202 | + * @package {ns.View~UpdateTree} [updateOptions.updateTree] |
1200 | 1203 | * @param {object} events |
1201 | 1204 | * @private |
1202 | 1205 | */ |
|
1212 | 1215 | // "my-root-view2": {/* tree 2 */} |
1213 | 1216 | // } |
1214 | 1217 | var options_next; |
| 1218 | + |
1215 | 1219 | if (updateOptions.toplevel) { |
1216 | 1220 | options_next = no.extend({}, updateOptions); |
1217 | 1221 |
|
|
1283 | 1287 |
|
1284 | 1288 | // Рекурсивно идем вниз по дереву, если не находимся в async-режиме |
1285 | 1289 | if (!this.asyncState) { |
| 1290 | + // Вычисляем поддерево updateTree для текущего вида. |
| 1291 | + var updateTree = updateOptions.updateTree ? updateOptions.updateTree.views[this.id] : null; |
| 1292 | + var parentId = this.id; |
| 1293 | + |
1286 | 1294 | this._apply(function(view) { |
1287 | | - view._updateHTML(viewNode, options_next, events); |
| 1295 | + // Обновляем вложенный вид если |
| 1296 | + // - для текущего вида не указан updateTree |
| 1297 | + // - для текущего вида указан updateTree и в нём присутствует вложенный вид |
| 1298 | + if (!updateTree || updateTree.views[view.id]) { |
| 1299 | + // Для вложенного вида передаём либо весь updateOptions.updateTree, |
| 1300 | + // либо своё поддерево updateOptions.updateTree. |
| 1301 | + var nested_update_tree = !updateTree ? updateOptions.updateTree : updateTree.views[view.id]; |
| 1302 | + var nested_options_next = no.extend({}, options_next, { updateTree: nested_update_tree }); |
| 1303 | + |
| 1304 | + view._updateHTML(viewNode, nested_options_next, events); |
| 1305 | + } |
| 1306 | + |
| 1307 | + if (ns.DEBUG) { |
| 1308 | + if (updateTree && !updateTree.views[view.id]) { |
| 1309 | + ns.log.debug('[ns.View] skip updating HTML for ' + view.id + ' inside ' + parentId, updateTree); |
| 1310 | + } |
| 1311 | + } |
1288 | 1312 | }); |
1289 | 1313 | } |
1290 | 1314 | }; |
|
0 commit comments