我正在尝试从嵌套的foreach中访问根级别属性。
<!-- ko foreach: { data: items, 'as': 'item' } -->
<tr data-bind="foreach: { data: $parent.columns, 'as': 'column' }" >
<td>{{ item[column.key] }}</td>
<!-- ko if: $root.thing -->
<td><button class="btn btn-default" >click me</button></td>
<!-- /ko -->
</tr>
<!-- /ko -->
thing
是一个普通的对象,而不是一个可观察的对象。 $root.thing
正在评估为假。我也试过$parent[1].thing
。这给了我一个绑定错误Message: Cannot read property 'thing' of undefined
,这很奇怪,因为在这种情况下我认为$root
和$parent[1]
是等效的。
编辑:此代码是组件的一部分。在视图中它看起来像这样:
<component data-bind="thing: {prop: 'foo'}, stuff: $data" />
在组件中,我们有:
return function(params) {
this.thing = params.thing;
this.items = params.stuff.items;
this.columns = [{key: 'one'}, {key: 'two'}];
})
答案 0 :(得分:0)
$root
引用viewmodel,而不是组件,使用$parents[]
。从淘汰赛3.3开始,您也可以使用$component
。