Я борюсь с привязкой опций для knockout.js. Когда я не использую опции связывания, как этотПараметры привязки нокаута, параметры не отображаются
<select id="AddProductSelect" name="chosenSpaProduct">
<!-- ko foreach: Spa.SpaProductList -->
<option data-bind="text: Name" ></option>
<!-- /ko -->
</select>
он работает отлично. В приведенном ниже строчке я пытаюсь использовать привязки параметров, как это
<select data-bind="options: Spa.SpaProductList, optionsText: 'Name'"></select>
ничего не отображается в элементе select.
Spa.SpaProductList - это массив объектов. Любые идеи о том, что я делаю неправильно?
Edit: Соответствующие JS:
$(document).ready(function() {
var initialData = @Html.Raw(Json.Encode(Model));
viewModel = new ViewModel(initialData);
ko.applyBindings(viewModel);
viewModel.ViewLoaded(true);
function ViewModel(initialData) {
var self = this;
ko.mapping.fromJS(initialData, {}, self);
(...)
}
}
Вы можете оставить соответствующий JavaScript? Модель, инициализация модели и код applyBindings(). –
Поскольку на основе кода, который вы предоставили, это должно работать, как показано в этом jsfiddle. http://jsfiddle.net/vYdVS/ Что оставляет меня с мыслью, что это связано с вашей ссылкой на 'Spa.' –
@FeistyMango добавил js, который вы просили. Я думаю, что вы правы в отношении спа-салона, но не знаете, как отлаживать. Какие-нибудь советы и трюки? Я пробовал с $ root.Spa ... чтобы убедиться, что Im в корне ViewModel, но это не помогло. –