我不知道如何访问已通过与绑定checked关联的方法中的click绑定更新的值?
似乎checked绑定在绑定之后评估click,因为在click绑定方法/处理程序中我无法访问computed依赖于与checked绑定同步的数组的属性值。
单个复选框的模板:
<script id="singleFilterTemplate" type="text/html">
<li>
<input type="checkbox" data-bind="attr: { value: id },
click: $root.testMethod,
checked: $parent.selectedFilterIds">
</li>
</script>
我遵循视图模型的层次结构:
- TopLevelViewModel ($root in template above, defines computed aggregatedSelectedIds property)
---- GroupViewModel_0 ($parent in template above)
-------FilterViewModel_0_0 (Each FilterViewModel is associated with a check box)
-------FilterViewModel_0_N
---- GroupViewModel_N
-------FilterViewModel_N_0
-------FilterViewModel_N_N
checked: $parent.selectedFilterIds:每次选中/取消选中复选框时 -TopLevelViewModel.selectedFilterIds数组中的相应项目都会更新click: $root.testMethod:在单击复选框时,我试图获取所有复选框的当前状态,为此我引入了计算属性aggregatedSelectedIds,该属性运行良好并表示所有GroupViewModel.selectedFilterIds值的聚合状态,基本上它聚合了所有selectedFilterIds属性的元数据成单个值,testMethod()我只是在调用alert(topLevelViewModel.aggregatedSelectedIds())以确保此属性表示当前选定过滤器的列表。
所以每次testMethod()通过绑定调用click- 我看到过滤器的先前状态(值,由 计算aggregatedSelectedIds)。那么有没有办法在checked绑定之前强制/推送/评估click绑定?我尝试event了绑定,但得到了相同的结果。也许我以错误的方式这样做并且错过了一些明显的东西?