有一个递归嵌套标记:
<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}
]}
]}
]
})
如标记代码中的注释所述 - 更改父级复选框“已检查”状态时出现问题。但“选定”财产的价值按预期变化。
是否有可能以某种方式更改父级的复选框状态或为父级标记调用“select”方法?
答案 0 :(得分:1)
只有触发了eventhandler的元素才会自动更新。要更改元素外部的视图,您需要手动更新它。
parent.selected = item.selected
parent.update()