Javascript 如何在ko虚拟元素的foreach循环中保持上下文

Javascript 如何在ko虚拟元素的foreach循环中保持上下文,javascript,knockout.js,foreach,Javascript,Knockout.js,Foreach,我想知道,为什么变量'Value.SpecificValue'可以在一种情况下使用,而在另一种情况下不能使用(请参阅内联注释) 我将代码用作模板。我的输入是对象“值” 它的属性是Value.SpeficValue(字符串)和Value.List(对象{Name,Value}的列表),其中的值应该与Value.SpeficValue匹配 为什么我不能访问foreach循环中的Value.SpecificValue <label data-bind="text: Value.Speci

我想知道,为什么变量'Value.SpecificValue'可以在一种情况下使用,而在另一种情况下不能使用(请参阅内联注释)

我将代码用作模板。我的输入是对象“值”

它的属性是Value.SpeficValue(字符串)和Value.List(对象{Name,Value}的列表),其中的值应该与Value.SpeficValue匹配

为什么我不能访问foreach循环中的Value.SpecificValue

    <label data-bind="text: Value.SpecificValue"></label> @*working*@
    <!-- ko foreach: { data: Value.List, as: 'list' } -->
    <div class="form-check">

        <label data-bind="text: Value.SpecificValue"></label> @*not working*@

        <label>
            <input type="radio" data-bind="value: list.Value, checked: Value.SelectedValue, attr:{id:ElementId}"> <span class="label-text" data-bind="text: list.Name"></span>
        </label>
    </div>
    <!-- /ko -->
@*正在工作*@
@*不起作用*@

每个绑定的敲除都有自己的绑定上下文。$data是foreach循环的当前数据项

访问当前位于外部上下文中的
Value.SpecificValue
。您需要使用绑定上下文的$parent属性才能使其正常工作

<label data-bind="text: $parent.Value.SpecificValue"></label>