7
我覺得我錯過了一些非常基本的東西,但我無法得到一個下拉菜單,因爲我期望使用Knockout.js。如何從knockout.js observableArray中獲取選定的菜單選項?
我有一組對象我想要在菜單中呈現,我需要找到選定的選項並將其發佈到服務器。我可以讓菜單呈現,但似乎無法獲取所選項目的值。我的視圖模型是這樣的:
function ProjectFilterItem(name, id) {
this.Name = name;
this.Id = id;
}
function FilterViewModel() {
this.projectFilters = ko.observableArray([
new ProjectFilterItem("foo", "1"),
new ProjectFilterItem("bar", "2"),
new ProjectFilterItem("baz", "3")
]);
this.selectedProject = ko.observable();
}
ko.applyBindings(new FilterViewModel());
和我的觀點的標記看起來像這樣:
<select
id = "projectMenu"
name = "projectMenu"
data-bind = "
options: projectFilters,
optionsText: 'Name', /* I have to enquote the value or I get a JS error */
optionsValue: 'Id', /* If I put 'selectedProject here, nothing is echoed in the span below */
optionsCaption: '-- Select Project --'
"
></select>
<b>Selected Project:</b> <span data-bind="text: selectedProject"></span>
如何獲得所選擇的菜單項中的跨度顯示,並張貼到服務器? (我假設我在span中呈現的觀察值與我發佈的相同。)我是否需要ProjectFilterItem
中的另一個屬性,如this.selected = ko.observable(false);
?如果是這樣,我將如何宣佈它是價值的目標?
d'oh!我錯過了文檔中的內容 - 我正在關注底部的參數部分,並閱讀頂部的說明。謝謝,問題解決了! – Val
感謝演示,它幫了我很多! – WhatsInAName