Начальное значение Knockout JS select не отображается правильно внутри цикла foreach - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть случай, когда у меня есть список элементов, и для каждого из них мне нужно отобразить раскрывающийся список, в котором редактируется определенное поле

случай, который происходит, когда я редактирую выделение и сохраняю, изменение связывается и сохраняется правильно.

но когда я загружаю страницу в первый раз, все варианты выбора отражают самый первый элемент (значение игнорируется)

  <tbody data-bind="foreach: Model.Items">

    ///something

          <select data-bind="value: Fieldvalue,options: $root.optionslist,  optionsValue: 'Id', optionsText: 'Name'"></select>

    ///something

  </tbody>

1 Ответ

0 голосов
/ 15 апреля 2019

Вот пример, где я устанавливаю начальные значения, а затем загружается DOM и значения привязываются. Это работает, как ожидалось. Возможно, ваша проблема в другой части кода, которую вы нам не показали.

var viewmodel = function(){
  
  this.Model = {
    Items: [
      {Fieldvalue: ko.observable(2)},
      {Fieldvalue: ko.observable(3)}
    ]
  };
  this.optionslist = [
    {Id: 1, Name: 'option 1'},
    {Id: 2, Name: 'option 2'},
    {Id: 3, Name: 'option 3'}
  ];
};

ko.applyBindings(new viewmodel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>


<div data-bind="foreach: Model.Items">
    <select data-bind="value: Fieldvalue,
                       options: $root.optionslist,  
                       optionsValue: 'Id', 
                       optionsText: 'Name'"></select>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...