1

したがって、2つの別々のモデルがあります。1つは「アイテム」モデル、もう1つは「サイト」モデルです... KOを使用して、このデータをDOM上の2つの別々の要素にバインドしています(必要に応じて機能しています)が、モデルの1つにあるバインドされた列の1つを、他のモデルのデータに置き換える必要があることがわかりました。

私の「items」モデルには、そのモデルの実際の「SiteName」プロパティ(単純な名前、値ペア-SiteName、SiteId)と交換したいサイトID列があります...誰か知っていますか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 に答える