在挖空视图中访问$ 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
,…)