2016-11-09 49 views
0

我試圖用knockout.js獲得選擇的指數的下拉列表中的文本,獲取有關下拉更改事件中選定的文本Knockout.js

以下是我的HTML

<select name="" id="management" class="form-control" data-bind="value: ManagementCompanies,optionText:ManagementCompaniestxt"> 
<option value="0">---Select---</option> 
<option value="1">abcd</option> 
<option value="2">efgh</option> 
</select> 

以下是我的模型綁定:

var FilterViewModel = { 
ManagementCompanies: ko.observable(''), 
ManagementCompaniestxt:ko.observable('') 
} 
FilterViewModel.ManagementCompanies.subscribe(function (newValue) { 

    alert(FilterViewModel.ManagementCompaniestxt()); 

}); 
ko.applyBindings(FilterViewModel, window.document.getElementById("SelectFilters")); 

我試圖綁定使用Text以及但沒有奏效。

我如何獲得選定的文本abcdsubscribe event

感謝

回答

0

這是一個有點怪異,你想從您的視圖您的視圖模型獲取數據。通常,您的視圖是視圖模型的表示。最好有數據來渲染您的模型中的<select>,並使用敲除的options數據綁定來渲染它。

這裏是你如何能做到這一點:

var FilterViewModel = { 
 
    ManagementCompanies: ko.observable(''), 
 
    ManagementCompaniestxt: ko.observable(''), 
 
    options: [ 
 
    { text: "---Select---", value: 0 }, 
 
    { text: "abcd", value: 1 }, 
 
    { text: "efgh", value: 2 }] 
 
} 
 

 
FilterViewModel.ManagementCompanies.subscribe(function(newValue) { 
 
    console.log(newValue.text); 
 
}); 
 

 
ko.applyBindings(FilterViewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<select data-bind="value: ManagementCompanies, 
 
        options:options, 
 
        optionsText: 'text'"> 
 
</select>

+0

呀,這將轉化爲在HTML選項列表,所以這是最好的方法:d – Kadaj

相關問題