2

このフィドルのように、入力フィールドに対してバインドしたいオブザーバブルで満たされたobservableArrayがあります:

<ul data-bind="foreach: elements">
    <li>
        <input type="text" data-bind="value: $data"/>
    </li>
</ul>

ただし、配列内のオブザーバブルはラップ解除されているため、その時点でのオブザーバブルの値は、オブザーバブル自体ではなく、入力の値にバインドされます。

値に対してバインドするのではなく、オブザーバブル自体をバインドすることは可能ですか?

別の質問で、RP Niemeyerはオブザーバブルをオブジェクト内にラップすることを提案しました。これが私の現在の解決策ですが、オブザーバブルを冗長にラップするのは好きではなく、直接バインドしたいと考えています。

4

1 に答える 1

2

あなたの場合、間接的な方法はありません。ただし、必要に応じて、 $parent.elements()[$index()] を使用してこれを行うことができます。

<input type="text" data-bind="value: $parent.elements()[$index()], click: function() { console.log($data); }"/>

これが更新されたフィドルです。http://jsfiddle.net/sujesharukil/qRXua/1/

于 2013-05-13T12:54:35.587 に答える