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 также с и без кавычек и +Но радости нет.

Любые мысли или уточнения необходимы?

0 ответов

Другие вопросы по тегам