2015-02-21 1 views
0

Есть рекурсивно вложенный тег:Внести изменения в родительском тег из вложенного тега

<list> 
    <div if="{ items }"> 
     <div each="{ items }"> 
     <input type="checkbox" checked="{ selected }" onclick="{ parent.select }"> {name} 
     <list /> 
     </div> 
    </div> 

    var parent = this.parent 
    select(e) { 
    var item = e.item 
    item.selected = !item.selected 
    parent.selected = item.selected // does not change parent's checkbox "checked" state 
    return true 
    } 
</list> 

Он установлен следующим образом:

riot.mount('list', { 
    items: [ 
    {name: "Item 1"}, 
    {name: "Item 2", selected: true, items: [ 
     {name: "Item 2.1", selected: true, items: [ 
      {name: "Item 2.1.1} 
     ]} 
    ]} 
    ] 
}) 

Как описано в комментариях в коде тегов - есть проблема при изменении флажка «checked». Но значение «выбранного» свойства изменяется, как ожидалось.

Возможно ли как-то изменить состояние флажка родителя или вызвать метод «выбрать» для родительского тега?

ответ

1

Будут обновляться только те элементы, у которых есть обработчик событий. Чтобы изменить представление вне элемента, вам необходимо обновить его вручную.

parent.selected = item.selected 
parent.update()