Я пытаюсь привязать select с помощью KnockoutJS к предопределенному значению, которое приходит из моей модели. Согласно документации, это должно исходить от значения значения, но я не могу предварительно выбрать значение в раскрывающемся списке на основе этого. Вот пример кода, который отражает проблему, которая у меня есть:KnockoutJS select lookup
<script src="Scripts/jquery-1.7.1.js"></script>
<script src="Scripts/knockout-2.0.0.js"></script>
<script>
$(function() {
var viewModel =
{
Positions: ko.observableArray(
[
{ Id: 1, PositionName: 'Point Guard' },
{ Id: 2, PositionName: 'Shooting Guard' },
{ Id: 3, PositionName: 'Center' },
{ Id: 4, PositionName: 'Small Forward' },
{ Id: 5, PositionName: 'Power Forward' }
]),
Players: ko.observableArray(
[
{ Id: 1, Name: 'Derrick Fisher', Position: 'Point Guard' },
{ Id: 2, Name: 'Kobe Bryant', Position: 'Shooting Guard' },
{ Id: 3, Name: 'Andrew Bynum', Position: 'Center' },
{ Id: 4, Name: 'Metta World Peace', Position: 'Small Forward' },
{ Id: 5, Name: 'Pau Gasol', Position: 'Power Forward' }
])
};
ko.applyBindings(viewModel);
});
</script>
В моих привязок я хотел бы использовать простую таблицу, где первая колонка предварительно выбранного значения подстановки, в данном случае «позиции» игрока по умолчанию. Вот пример:
<table>
<thead>
<tr>
<td>Position</td>
<td>Player</td>
</tr>
</thead>
<tbody data-bind='foreach: Players'>
<tr>
<td>
<select data-bind="options: $root.Positions, optionsText:'PositionName',
value:'$data.Position', optionsCaption: 'Choose...'">
</select>
</td>
<td>
<span data-bind='text: Name'></span>
</td>
</tr>
</tbody>
</table>
В поисках, похоже, связывает в порядке (выбранный заполняются все значения положения в поиске), однако позиция данного игрока не выбрана по умолчанию. Может ли кто-нибудь обнаружить, где я сделал плохое предположение или ошибку?
Благодарим за помощь! Я пытался уйти с примера 4 на http://knockoutjs.com/documentation/options-binding.html, но в этом случае вы правы, просто нужно было привязать optionsValue – t3rse