将绑定的ID更改为单独的模型名称

时间:2012-06-07 14:54:27

标签: binding model knockout.js

所以我有两个独立的模型,一个'项目'模型,第二个'网站' model ...我正在使用KO将这些数据绑定到两个单独的元素上 DOM(并根据需要工作),但我发现需要更换一个 我的一个模型上的绑定列的数据,以及来自另一个模型的数据。

在我的“商品”模型上,我有一个网站ID列,我很乐意互换 使用该模型上的实际“SiteName”属性(简单名称,值 - pair - 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>

1 个答案:

答案 0 :(得分: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中执行此操作。