Javascript 对foreach循环中父级的引用不起作用
我们有一系列的Javascript 对foreach循环中父级的引用不起作用,javascript,knockout.js,Javascript,Knockout.js,我们有一系列的问题。每个问题都有一系列答案。每个答案都有一个文本和值。每个问题都有属性selectedAnswer,该属性保留所选答案的值 实施: <div data-bind="foreach : {data: questions}"> <p data-bind="text: desc"></p> <div data-bind="foreach: {data: answers}"> <div> <span>W
问题
。每个问题都有一系列答案。每个答案都有一个文本
和值
。每个问题
都有属性selectedAnswer
,该属性保留所选答案的值
实施:
<div data-bind="foreach : {data: questions}">
<p data-bind="text: desc"></p>
<div data-bind="foreach: {data: answers}">
<div>
<span>Working:</span>
<label data-bind="text: answer"></label>
<input name="something" type="radio" data-bind="checked: model.selectedAnswer, value: value"></input>
<span>...Not working--></span>
<label data-bind="text: answer"></label>
<input name="something" type="radio" data-bind="checked: $parent.selectedAnswer, value: value"></input>
</div>
</div>
</div>
The selected answer is:
<span data-bind="text: model.selectedAnswer">
</span>
问题:如果我引用了
selectedAnswer
model.selectedAnswer它可以正常工作。如果我通过$parent.selectedAnswer
引用它,它将不起作用。我错过了什么
JSFiddle:在该上下文中,
$parent
指的是问题对象,而不是模型本身。您必须引用祖父母(父母的父母)才能访问模型
成员
您可以通过$parents
上下文属性访问它们。它只是相对于当前上下文的父对象数组$parents[0]
对应于父对象(与$parent
相同)。祖父母是$parents[1]
<input name="something"
type="radio"
data-bind="checked: $parents[1].selectedAnswer, value: value">
<input name="something"
type="radio"
data-bind="checked: $parents[1].selectedAnswer, value: value">