2017-12-07 1 views
0

私が持っている:どうknockoutjs内のオブジェクトとオプション値を設定する

<select name="test" id="test" class="" 
    data-bind=" 
    options: myArray, 
    value: idSelected, 
    optionsText: 'name', 
    optionsValue: 'id', 
optionsCaption: 'All'"> 

は、私が唯一のIDをたくない、私はあなたが項目からを選択すると、オブジェクトの私のアレイのIDと名前を設定したいですリスト。サンプル:

私はこの結果たい:

idSelected = {id:1, name:'Test'}; 

答えて

2

ちょうどあなたのバインディングからoptionsValueを削除します。

var viewModel = function() { 
 
    var self = this; 
 

 
    self.myArray = ko.observableArray([{ 
 
    id: 1, 
 
    name: 'Test 1' 
 
    }, { 
 
    id: 2, 
 
    name: 'Test 2' 
 
    }]); 
 

 
    self.idSelected = ko.observable(); 
 

 
    self.idSelected.subscribe((selected) => { 
 
    console.log(self.idSelected()); 
 
    }); 
 
} 
 

 
ko.applyBindings(new viewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 

 
<select name="test" id="test" class="" data-bind=" 
 
    options: myArray, 
 
    value: idSelected, 
 
    optionsText: 'name', 
 
optionsCaption: 'All'">

:これはここで働いてスニペットです idSelectedobservableArrayのオブジェクトではなく文字列( documentation

になるように設定します

関連する問題