9

HTMLをオブジェクトにバインドする必要がありますが、開発時にオブジェクトのプロパティがわからないという問題があります。

selectedItemメインビューモデルに、HTMLのセクションにバインドしたプロパティがあります。

<div data-bind="with: selectedItem">

</div>

次に、プロパティ名とプロパティ値に基づいてテーブルを生成します。

<div data-bind="foreach: [WHAT DO I PUT HERE?]">
    <label class="control-label"><span data-bind="text: [OR HERE?]" /></label>
</div>

私はこれをどのように行うのか本当にわかりません。どんな助けでも大歓迎です。

また、これを少し拡張して、バインドされたオブジェクトのプロパティを別の方法で処理したいと思います。たとえば、プロパティが単なるプリミティブ型の場合は出力しますが、別のオブジェクト/配列の場合は特別に処理します。

これはできますか?

4

2 に答える 2

13

他の誰かが単純なオブジェクトのプロパティをバインドしようとしている場合。あなたはこのようにそれを行うことができます...

<table>
    <tbody data-bind="foreach: arrayOfObjects">
        <tr data-bind="foreach: Object.keys($data)">
            <td data-bind="text: $parent[$data]"></td>
        </tr>
    </tbody>
</table>

注:object.keysは古いブラウザーではサポートされていませんが、これを使用して下位互換性を追加できますhttp://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation

于 2013-04-23T11:43:16.967 に答える
4

これは、実行時に表示するデータを選択するために計算されたobservableを使用する実際の例です。動的に選択されたテンプレートは、レンダリングするデータのタイプ(配列またはスカラー)に従ってデータをレンダリングするためにも使用されます。

于 2012-10-02T08:13:20.397 に答える