У меня есть два выпадающих списка в зависимости от другого (каскадный). Выбор в разделе «MainCategories» определяет элементы для «SubCategories». Кроме того, выбор в «MainCategories» также определяет видимость строки таблицы. Ниже я попытался:нокаутом каскадирование выпадающего списка
<table>
<tbody data-bind="foreach: contacts">
<tr>
<td>MainCategories:
<select data-bind='options: MyCategories, value: mycategory, optionsText: "Type", optionsValue: "Type",optionsCaption: "Select..."'></select>
</td>
<td>
<!-- ko with: mycategory -->SubCategories:
<select data-bind='options: Categories, optionsText: "Category", optionsCaption: "Select...", value: $parent.product'></select>
<!-- /ko -->
</td>
</tr>
<tr data-bind="visible:mycategory()=='Type1'">
<td>I am visible</td>
</tr>
</tbody>
</table>
<script type = "text/javascript" >
var MyCategories = [{
"Categories": [{
"Category": "Category1"
}, {
"Category": "Category2"
}],
"Type": "Type1"
}, {
"Categories": [{
"Category": "Category3"
}, {
"Category": "Category4"
}],
"Type": "Type2"
}];
var initialData = [{
category: "Mobile",
product: "Nokia"
}];
var ContactsModel = function (contacts) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function (contact) {
return {
mycategory: ko.observable(contact.category),
product: ko.observable(contact.product)
};
}));
};
ko.applyBindings(new ContactsModel(initialData));
</script>
Если удалить optionsValue: «Типа», то «подкатегории» получают право пунктов. Но видимость строки таблицы не работает должным образом. Если у меня есть optionsValue: «Type», то «SubCategories» не заполняется. А также, когда я меняю опции «MainCategories» 1 или 2 раза, тогда только видимость работает нормально.
Пожалуйста, помогите мне найти то, что я делаю неправильно здесь. Спасибо,