0

テキスト入力値をバインドしたい

<input type="text" id="2" data-bind="value :  ??whatToWriteHere??    ">

次の監視可能なオブジェクトの2番目のオブジェクトのnameプロパティ(ここでinput.id == object.id)

myObject = {
    myArray : [ { id:1, name:'one' },{ id:2, name:'two' },{ id:3, name:'three' } ]
},
myObservableObject = ko.observable(myObject);

どの式に置き換える必要がありますか??whatToWriteHere??

編集済み:実際には、配列は必ずしも別のオブジェクト内にある必要はありません

 myArray : [ { id:1, name:'one' },{ id:2, name:'two' },{ id:3, name:'three' } ]
 myObservableArray = ko.observableArray(myArray);
4

2 に答える 2

2

ko.mappingプラグインとあなたの目的のために作成されたカスタムバインディングに基づくソリューションがあります。

あなたはここで働くフィドルを見ることができます:

http://jsfiddle.net/ingro/MhdZp/

全体的なアイデアは、observableArrayをマップしてから、マッピングプラグインのmappedIndexOf関数を使用して入力IDに関連付けられているものを取得することです。

于 2012-07-05T09:07:59.520 に答える
0

入力のデータコンテキストが何であるかによって異なります。myObservableArray内のオブジェクトがテンプレート化された入力要素にバインドされている場合、バインドは「value:name」になります。foreachを使用していますか?または、myObservableArrayがページのどこかで宣言されている2番目の配列要素に明示的にバインドする入力要素が1つだけありますか?その場合は、「value:myObservableArray()[1].name」になります。

于 2012-07-05T08:27:32.330 に答える