Jak uzyskać wybraną opcję menu z knockout.js observableArray?

Czuję, że brakuje mi czegoś bardzo podstawowego, ale nie mogę uruchomić rozwijanego menu tak, jak tego oczekuję, używając Knockout.js.

Mam zestaw obiektów, które chcę zaprezentować w menu i muszę znaleźć wybraną opcję i opublikować ją na serwerze. Mogę wyrenderować menu, ale nie mogę uzyskać wartości wybranego elementu. Mój model widoku wygląda tak:

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() );

a mój widok wygląda tak:

<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>

Jak wyświetlić wybrany element menu w obszarze i opublikować na serwerze? (Zakładam, że obserwowalne, które renderuję w zakresie, jest tym samym, co post.) Czy potrzebuję innej własności wProjectFilterItem, lubićthis.selected = ko.observable(false); ? Jeśli tak, w jaki sposób deklarowałbym to jako cel wartości?

questionAnswers(1)

yourAnswerToTheQuestion