【问题标题】:Change bound Id to separate model name将绑定 ID 更改为单独的模型名称
【发布时间】:2012-06-11 15:42:13
【问题描述】:

所以我有两个独立的模型,一个是“items”模型,第二个是“sites” 模型...我正在使用 KO 将此数据绑定到两个单独的元素 DOM(并根据需要工作),但我发现需要更换一个 我的一个模型上的绑定列,以及来自另一个模型的数据。

在我的“项目”模型上,我有一个站点 ID 列,我很想交换它 具有该模型上的实际“SiteName”属性(简单名称,值- pair - SiteName, SiteId)... 有没有人知道在其中执行此操作的方法 KO?

我真的很想在服务器端保持模型数据本身的完整, 与只是在服务器端创建一个为我做这件事的自定义模型相比。

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

谢谢!

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

<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>

【问题讨论】:

    标签: binding model knockout.js


    【解决方案1】:

    使用我返回的模型执行此操作的 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 中没有能力这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多