我有这个模板
<!--ko template: { name: 'multiCheckBtn', data: { elems: posGenders, compareWith: gender, switch: switchCheckBtn} }-->
<!--/ko-->
<script id="multiCheckBtn" type="text/html">
<span class="fakeCheck" data-bind="foreach: { data: $data.elems, as: 't' } ">
// here $data becomes alias to t and I don't how to access other params, like $data.switch
<span class="btn" data-bind="text: t, css: { selected: t == $data.compareWith() }, click: $data.switch } "></span>
</span>
</script>
我希望在foreach
内部访问最初传递给模板的compareWith
和switch
变量,但我只能在foreach
之前访问它们。内部循环$data
变量成为t
的别名,我无法访问其他变量。
我是否可以将数据传递到foreach
循环,以便我可以访问它,就像我试图访问?
答案 0 :(得分:1)
您可以使用$parent
对象访问它们:
<script id="multiCheckBtn" type="text/html">
<span class="fakeCheck" data-bind="foreach: { data: $data.elems, as: 't' } ">
<span class="btn" data-bind="text: t, css: { selected: t == $parent.compareWith() }, click: $parent.switch } "></span>
</span>
</script>