У меня есть загрузочная вкладка bootstrap, и я хочу отображать динамическое содержимое при выборе вкладки. Ajax возвращает массив результатов. Каждый результат имеет Price, Logo, Companyname и массив Covers. Каждая обложка имеет Price, MaxCover, Необязательный и Описание. Остальной код html здесь link, но теперь я хочу вернуть более сложный тип.Матрица связывания нокаутом сложного типа с ajax
<script type='text/javascript'>
var cover = new
{
Price: ko.observable(),
MaxCover: ko.observable(),
Optional: ko.observable(),
Description: ko.observable(),
}
var result = new
{
Price: ko.observable(),
InsLogo: ko.observable(),
CompanyName: ko.observable(),
Covers: ko.observableArray()
};
var tab = function (Id, name, selected) {
this.Id = Id;
this.name = name;
this.Results = ko.observableArray();
this.isSelected = ko.computed(function() {
return this === selected();
}, this);
}
var ViewModel = function() {
var self = this;
self.selectedTab = ko.observable();
self.tabs = ko.observableArray([
new tab(0, 'Tab1', self.selectedTab),
new tab(1, 'Tab2', self.selectedTab),
new tab(2, 'Tab3', self.selectedTab)
]);
self.selectedTab(self.tabs()[0]);
self.selectedTab.subscribe(function() {
$.ajax({
url: '@Url.Action("GetSection")',
data: { Id: self.selectedTab().Id },
type: 'GET',
success: function (data) {
self.selectedTab().Results(data.Results); //Here I want to fill the results!!!!!!
}
});
});
}
ko.applyBindings(new ViewModel());
любая проблема, в частности, вы сталкиваетесь? насколько я вижу данные, это не так сложно. добавьте скрипку, чтобы я мог помочь вам. cheers –
Вам не нужно использовать 'new' с объектными литералами' {} '- на самом деле это ошибка. Использовать '{}' достаточно. – Tomalak