2011-08-22 184 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>