Javascript 淘汰数据绑定下拉列表取决于其他下拉列表

Javascript 淘汰数据绑定下拉列表取决于其他下拉列表,javascript,data-binding,knockout.js,Javascript,Data Binding,Knockout.js,我试图对两个下拉列表进行数据绑定,其中第二个下拉列表取决于第一个下拉列表中选择的内容 我有这样的数据结构: { EducationId: 1, EducationCategories:[{ Name: "Category1", Educations: [{ Id: 1, Name: "Education1" }, { Id: 2, Name: "Education2" }] }, { Name

我试图对两个下拉列表进行数据绑定,其中第二个下拉列表取决于第一个下拉列表中选择的内容

我有这样的数据结构:

{
EducationId: 1,
EducationCategories:[{
    Name: "Category1",
    Educations: [{
        Id: 1,
        Name: "Education1"
    }, {
        Id: 2,
        Name: "Education2"
    }]
}, {
    Name: "Category2",
    Educations: [{
        Id: 3,
        Name: "Education3"
    }, {
        Id: 4,
        Name: "Education4"
    }]
}]
}
这我想数据绑定到2个不同的“选择”与淘汰,所以我有一个下拉列表与所有类别名称,第二个与教育

EducationId指的是所选的教育,因此在数据示例中,第一个下拉列表是“Category1”,第二个下拉列表是“Education1”

但是我如何才能使第二个下拉列表只填充属于第一个下拉列表中所选类别的教育?然后将第二个下拉列表的值(id)绑定到EducationId


数据由敲除映射插件进行映射。

当第一个下拉列表中的选定值更改时,使用
computed
属性更新第二个下拉列表

例如:

var数据={
教育编号:1,
教育类别:[{
名称:“类别名称1”,
教育:[{
Id:1,
名称:“教育名称1”
}, {
Id:2,
名称:“教育名称2”
}]
}, {
名称:“类别名称2”,
教育:[{
Id:3,
名称:“教育名称3”
}, {
Id:4,
名称:“教育名称4”
}]
}]
};
var viewModel=ko.mapping.fromJS(数据);
viewModel.selectedCategory=ko.observable();
viewModel.Educations=ko.computed(函数(){
如果(viewModel.selectedCategory()){
返回viewModel.selectedCategory().Educations();
}
});
viewModel.selectedEducation=ko.observable();
应用绑定(视图模型)


这项工作几乎可以重复,但加载数据时如何?假设EducationId=3。绑定时,类别应为2和3。那么也许可以计算所选的教育?以及如何检查这属于哪一类?不确定如何筛选?最简单的方法可能是只筛选类别,直到找到一个教育程度匹配的类别(假设ID在所有类别中都是唯一的),然后在开始时将
selectedCategory
设置为该类别。