2011-08-22 348 views
0

我是Knockout.js的新手,任何人都可以告訴我們如何使用Knockout.js填充b下拉列表。 我有兩個下拉菜單:員工和課程。使用Knockout.js填充下拉列表

<select id="Employee"> 
        <option value="1" selected="selected">1</option> 
        <option value="2">2</option> 

       </select> 

<select id="Course"> 
        <option value="Course1" selected="selected">Course1</option> 
        <option value="Course12">Course12</option> 

       </select> 

所以我的要求是如果我選擇員工「1」,那麼我應該只能看到Course1。 如果我選擇員工「2」,我應該能夠看到Course1和Course2。

回答

3

沒有關於您的視圖模型的詳細信息,這是非常難回答,但是這可能是你的javascript:

(function (myViewModel, $, undefined) { 
    myViewModel.selectedEmployee = ko.observable(1); 
    myViewModel.courses = ko.dependentObservable(function() { 
     var result = ["Course1"]; 
     if (myViewModel.selectedEmployee() === '2') { 
      result.push("Course2"); 
     } 
     return result; 
    });   
}(window.myViewModel = window.myViewModel || {}, jQuery)); 
ko.applyBindings(myViewModel); 

,然後你的HTML:

<select id="Employee" data-bind="value: selectedEmployee"> 
    <option value="1" selected="selected">1</option> 
    <option value="2">2</option> 
</select> 

<select id="Course" data-bind="options: courses"></select>