javascript - 基于 ID Knockoutjs 的两个下拉选项绑定(bind)

标签 javascript knockout.js knockout-2.0 knockout-mapping-plugin knockout-mvc

我有以下内容:

     <select data-bind="options: animals, value: optionsValue: 'ID', optionsText: 'Name'" />

        self.animals = ko.mapping.fromJS([
            {"Name": "Tamed": , "ID": "1" },
            {"Name": "Wild": , "ID": "2" },
            ]);

        self.wildOrTamed = ko.mapping.fromJS([
            { "Name": "Cat", "ID": "1" },
            { "Name": "Lion", "ID": "2" },
            { "Name": "Cat": "1"  },
            { "Name": "Tiger", "ID": "2"  }]);

我希望有 2 个下拉菜单,供动物选择驯养或野生动物,然后根据该情况更改我的 wildOrTamed 下拉列表以使用指定的 ID 显示野生动物或驯养动物。

注意:这是动态的,因此可能有其他类型的动物......

谁能帮我解决这个问题。

谢谢

最佳答案

尝试使用computed observable 。看看 fiddle http://jsfiddle.net/aravindbaskaran/6w4N8/

<select data-bind="options: animalTypes, value: animalType, optionsValue: 'ID', optionsText: 'Name'"></select>
<select data-bind="options: animalsForType, value: selectedAnimal, optionsValue: 'ID', optionsText: 'Name'"></select>

self.animalTypes = ko.observable([{"Name": "Tamed","ID": "1"},
    {"Name": "Wild","ID": "2"},
    {"Name": "Something else","ID": "3"}]);

self.animals = [{"Name": "Cat","ID": "1"},
    {"Name": "Lion","ID": "2"},
    {"Name": "Cat","ID": "1"}, 
    {"Name": "Tiger","ID": "2"}];
self.animalType = ko.observable();
self.selectedAnimal = ko.observable();
self.animalsForType = ko.computed(function () {
    var selectedType = self.animalType();
    return !selectedType ? [] : self.animals.filter(function (animal) {
        return animal.ID == selectedType;
    });
});

希望对你有帮助!

关于javascript - 基于 ID Knockoutjs 的两个下拉选项绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515993/

相关文章:

javascript - 将参数从 Knockout 模板传递到模态

jquery - 我什么时候应该将事件绑定(bind)到 Knockout 绑定(bind)生成的元素?

javascript - 协助将 json 重新绑定(bind)到 knockout 模型

Javascript:带按钮的循环声音。 bool 值错误

javascript - 无法获得正确的 knockout 绑定(bind)上下文

knockout.js - 在 knockout 中禁用单个项目

javascript - 语法错误: Unable to parse bindings with json

javascript - 在 jquery 或 jqGrid 中导出到 excel

javascript - JS 导入 : Uncaught SyntaxError: Unexpected token {

javascript - 当我的手指已经在屏幕上时,如何在添加到 DOM 的元素上捕获 touchmove 事件?