2

目标

click在与 KnockoutJS 绑定后立即渲染模板。

场景

我的应用程序上有一个表格,该表格的每一行都是一个项目。当我单击某个项目时,我将在另一个容器中显示其详细信息。

我通过参数传递有关此项目的所有必要信息,并且需要将此参数作为template绑定上的数据获取 -我该怎么做?

说明性细节

这是我的触发器

[...]
    <tr data-bind="click: showDetails"></tr>
[...]

当有人点击它时,会显示以下模板:

<p data-bind="text: itemName"></p>

...在以下容器中:

<div class="details" 
     data-bind="template: {name: 'detailsTemplate',
                           data: ~should be the parameter (object)
                                  that "showDetails" sends~}">
</div>

最终的DOM 应该如下所示,并且必须在我单击某个项目时才可见:

<div class="details" [...]>
    <p>Microsoft</p>
</div>

有人知道我该怎么做吗?

4

1 回答 1

1

在主细节视图中,一个非常常见的做法是拥有一个细节视图将绑定的“选定”项目。

selectedItem由于发送到绑定中函数的默认参数click是当前绑定上下文,即绑定中的当前项,因此从绑定中设置 this变得更容易foreach。再加上 observable 是函数这一事实,您可以selectedItem像这样直接设置:

data-bind="click: $parent.selectedItem"

然后你所要做的就是将一些细节视图绑定到selectedItem. 看一下这个小提琴的一个简单的例子。

于 2013-08-29T02:14:43.380 回答