淘汰绑定上下文将父级作为参数传递

Posted

技术标签:

【中文标题】淘汰绑定上下文将父级作为参数传递【英文标题】:knockout binding context pass parent as parameter 【发布时间】:2014-06-20 05:06:48 【问题描述】:

当我单击表格行时,我将信息对象传递给函数 $root.goToEvent。但我想传递该对象的上层,在本例中为 events[[1]] 以及 inforules。屏幕和代码已附加。提前致谢。

html

  <table class="mainTable" style="width:820px" border="1" data-bind="with: dataToShow">
                <tr>
                    <td  valign="top">
                        <!-- Events List -->
                        <table class="events" >
                        <thead><tr><th >События</th></tr></thead>
                        <tbody id="eventsTable" data-bind="foreach: events">

                            <!-- ko with: info -->
                            <tr id="trEvent" data-bind="css:  selected : $data==$root.chosenEvent(), click: $root.goToEvent">
                            <td data-bind="text: event_title"></td>
                            </tr>     
                            <!-- /ko-->
                        </tbody>
                        </table>

对象: https://flic.kr/p/nvsrQB

【问题讨论】:

【参考方案1】:

一个选项是 bind 带有适当上下文 (this) 和初始参数的函数。

类似:

data-bind="click: $root.goToEvent.bind($root, $parent)"

这将调用goToEvent,并将this 的值设置为$root,第一个参数是父上下文(代码中的event 对象)。

【讨论】:

谢谢,据我了解,$parents[1] 会传递上层对象,而 $parents[2] 会传递上层对象,以此类推直到 $root,对吧? @DmitriiG。 - 是的 - $parents[0] 将与 $parent 相同,然后您可以从那里向上移动范围。此页面是文档:knockoutjs.com/documentation/binding-context.html

以上是关于淘汰绑定上下文将父级作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章

淘汰赛 - 从 event.target 传递属性值作为点击事件的参数

如何将项目从淘汰赛 foreach 传递到部分视图作为数据绑定?

调用微风函数时如何将数据绑定值作为参数传递

如何将某些活动的上下文作为参数传递

vue 父子组件传递数据

如何在 PLSQL 过程中将绑定变量作为 IN OUT 参数传递