1

所以我有两个单独的模型,一个“项目”模型,第二个是“站点”模型......我正在使用 KO 将此数据绑定到 DOM 上的两个单独元素(并根据需要工作),但我已经发现需要用另一个模型上的数据替换我的一个绑定列。

在我的“项目”模型上,我有一个站点 ID 列,我想用该模型上的实际“站点名称”属性(简单名称、值对 - SiteName、SiteId)交换...有人知道吗有一种方法可以在 KO 中做到这一点?

我真的想在服务器端保持模型数据本身的完整性,而不是在服务器端创建一个为我做的自定义模型。

我确信我可以给这些元素一个特殊的类,并循环遍历它们并用 jQuery 手动替换它们,但我认为 KO 可能有更简单的方法来做到这一点。

谢谢!

我已经尝试过类似的方法,但它似乎不起作用(是的,我知道表格元素中的 div 标签不是基于标准的,我只是想看看它是否有效,如果有效,我会转换从表格到另一个格式选项)

<tbody data-bind="foreach: items">
        <tr data-bind="click: updateItem">
            <td data-bind="text: ItemName"></td>
            <div data-bind="foreach: sites">
                <div data-bind="if: items.SiteId = sites.SiteId">
                    <td data-bind="text: sites.SiteName"></td>
                </div>
            </div>
4

1 回答 1

0

使用我返回的模型执行此操作的 jQuery 是:

$(function () {
            $('#allItems tr .siteIdCell').each(function () {
                for (i in allSites) {
                    if (allSites[i].SiteId == $(this).html()) {
                        $(this).html(allSites[i].SiteName);
                    }
                }
            });
        });

其中 .siteIdCell 是我使用此值应用于列的类,allSites 是我通过 JSON 接收的对象数组。

不确定我是否会得到很多回复,但我只是想如果其他人有同样的问题,我会更新这个,而且在 KO 中没有能力做到这一点。

于 2012-06-07T17:34:30.423 回答