0
Мой проект - создать сетку дат, основанную на моем представленииМодель ниже. Код работает, но мне интересно выяснить, есть ли более простой способ добраться до моего первого внутреннего массива «CalendarDateBlocks».Упрощенный нокаут вложенных петель
// data = products.productUnits.CalendarDateBlocks
function productViewModel (data) {
var self = this;
window.viewModel = self;
self.productsList = ko.observable(data);
}
Нокаут HTML связывании В таблице
<table>
<tr>
<th>Product</th>
<th>Unit</th>
<!-- ko foreach: window.viewModel.productsList-->
<!-- ko if: ($index()===0)-->
<!-- ko foreach: ProductUnits -->
<!-- ko if: ($index()===0)-->
<!-- ko foreach: CalendarDateBlocks -->
<th data-bind="text: BlockDate"></th>
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
</tr>
</table>
JSon код с сервера
{
"productsList":[
{
"ProductId":1,
"Title":"Standard",
"ImageGalleryId":10,
"ProductUnits":[
{
"ProductUnitId":1,
"ProductId":1,
"CalendarBlocks":[
{
"ProductId":1,
"ProductUnitId":1,
"BlockDate":"09/01/2013"
},
{
"ProductId":1,
"ProductUnitId":1,
"BlockDate":"09/02/2013"
}
]
},
{
"ProductUnitId":2,
"ProductId":1,
"CalendarBlocks":[
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/01/2013"
},
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/02/2013"
}
]
},
{
"ProductUnitId":3,
"ProductId":1,
"CalendarBlocks":[
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/01/2013"
},
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/02/2013"
}
]
},
{
"ProductUnitId":4,
"ProductId":1,
"CalendarBlocks":[
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/01/2013"
},
{
"ProductId":0,
"ProductUnitId":0,
"BlockDate":"09/02/2013"
}
]
}
]
}
]
};
Почему вы используете $ индекс() == = 0 если утверждение там? –
Мы создаем сетку календаря, первая строка
Если ответ, который я уже разместил, не делает то, что вы пытаетесь сделать, создайте скрипку, чтобы мы могли понять, что вы пытаетесь добиться. –
ответ
Это должно работать
источник
2013-12-04 18:06:01
Я создал модифицированную версию с предлагаемым решением, которое не работает. http://jsfiddle.net/X65Dm/1/ – phanf
Это сообщение с консоли браузера. ТипError: window.viewModel.productsList.ProductUnits не определено – phanf
Не использовать window.viewModel. Используйте productsList(). ProductUnits или w/e. –
Смежные вопросы