KnockoutJS динамически устанавливает значение ввода
Я пытаюсь динамически установить значение выбора ввода с помощью knockoutjs data-bind. Если я просто поставлю value: $parents[0].selectedSubcategory
в <select>
атрибуты элемента, он работает нормально. Но когда я пытаюсь передать значение, это не работает.
Мой взгляд выглядит так -
<div data-bind="with: QuestionFilter">
<form>
<div data-bind="foreach: details">
<select data-bind="options: subcategories, optionsText: 'name', optionsValue: 'categoryID', value: subcategoriesValue">
</select>
</div>
</form>
</div>
<script type="text/javascript">
ko.applyBindings({
categories = <?php echo $categories; ?>,
details = ko.observableArray([])
});
</script>
И мой JS выглядит так -
function QuestionFilter(categories, details) {
var self = this;
self.subcategories = ko.observableArray([]);
self.selectedSubcategory = ko.observable();
function search(nameKey, myArray){
for (var i=0; i < myArray.length; i++) {
if (myArray[i].parentCategory_id === nameKey) {
self.subcategories.push(myArray[i]);
}
}
}
search(2, categories);
details.push({ firstName: self.subcategories(), lastName: self.selectedSubcategory()});
});
self.selectedSubcategory.subscribe(function(subcategory) {
function subsearch(nameKey, myArray){
for (var i=0; i < myArray.length; i++) {
if (myArray[i].parentCategory_id === nameKey) {
self.superSubcategories.push(myArray[i]);
}
}
}
subsearch(subcategory, categories);
details.push({ firstName: self.superSubcategories()});
});
В дополнение к вышесказанному, я попытался использовать lastName: $parents[0].self.selectedSubcategory()
, с и без кавычек. Я также попытался установить <select>
значение элемента, как это: value: $parents[0].lastName
также с и без кавычек и +
Но радости нет.
Любые мысли или уточнения необходимы?