在挖空视图中访问$ parent的$ parent – 嵌套上下文

更新简洁

我怎样才能引用嵌套Knockout的foreach /绑定$​​父母的$父母?

示例 –

<!-- ko foreach: grandParent --> <tr> <!-- ko foreach: $parent.parents --> // <-- Doesn't work <!-- ko foreach: children --> <td data-bind="if: favToy().name == $parent.$parent.favToy().name"> <span data-bind="text: favToy().name"></span> </td> <!-- /ko --> <!-- /ko --> </tr> <!-- /ko --> 

原版的

对不起,令人困惑的问题,但我试图达到一个二级父母的价值来检查当前上下文(如下)的价值,只显示一个跨度,如果它匹配$父母的$父母的价值(唉!)

  <!-- ko foreach: grandParent --> <tr> <!-- ko foreach: $parent.parents --> <!-- ko foreach: children --> <td data-bind="if: favToy().name == $parent.$parent.favToy().name"> <span data-bind="text: favToy().name"></span> </td> <!-- /ko --> <!-- /ko --> </tr> <!-- /ko --> 

这样做会更容易,但从我读过的这是不可能的,或者我做错了:)

  <!-- ko foreach: grandParent --> <tr> <!-- ko foreach: $parent.parents --> <!-- ko foreach: children ? favToy().name == $parent.$parent.favToy().name --> <td data-bind="text: favToy().name"></td> <!-- /ko --> <!-- /ko --> </tr> <!-- /ko --> 

任何帮助将不胜感激。

使用$parents数组,祖父母将是$parents[1] 。 如果您的示例中的grandParent对象是最顶层的父级,您也可以使用$root

从文档 :

$父母

这是一个代表所有父视图模型的数组:

$ parents [0]是父上下文的视图模型(即,它与$ parent相同)

父母[1]是从祖父母的angular度来看的模型

父母[2]是从曾祖父母的angular度看的模型

… 等等。

$根

这是根上下文中的主视图模型对象,即最上面的父上下文。 通常是传递给ko.applyBindings的对象。 这相当于$ parents [$ parents.length – 1]。

你可以使用$parentContext.$parent

$parentContext提供许多有用的属性,如( $data$parent$index ,…)