我使用引导程序传送带在每个传送带项目中显示两列数据。这是我在做什么一个简单的例子:将数据拆分为两个带敲除的引导列
<div class="carousel-inner col-sm-12" role="listbox" data-bind="foreach: { data: dataSlides, as: 'slide' }">
<div class="item" data-bind="css: { active: $index() == 0 }">
<div class="col-sm-6" data-bind="foreach: { data: dataLeft, as: 'data' }">
<div data-bind="text: data"></div>
</div>
<div class="col-sm-6" data-bind="foreach: { data: dataRight, as: 'data' }">
<div data-bind="text: data"></div>
</div>
</div>
</div>
和数据模型我有,使用这样的结构:
self.dataSlides = ko.observableArray(
[
{ dataLeft: ['data 1', 'data 2', 'data 3'], dataRight: ['data 4', 'data 5', 'data 6'] },
{ dataLeft: ['data 7', 'data 8', 'data 9'], dataRight: ['data 10', 'data 11', 'data 12'] }
]);
这工作正常但有一个问题。在我的实际实现中,显示我的数据<div data-bind="text: data"></div>
的部分非常复杂,正如您所看到的,我必须将其写入2次。一次用于我的左侧数据,一次用于我的正确数据。
我想要做的是将我的数据放入一个数据数组(无dataLeft/dataRight),并在左列中显示一半数据,在右列显示另一半数据。这样我就不必写数据显示循环两次。
要做到这一点,我需要以某种方式关闭并重新打开列标记,当foreach通过一半的数据。我尝试了以下操作,但这不起作用,因为它打破了以下的习俗:
<!-- ko if: $index() == data().length/2 -->
</div>
<div class="col-sm-6">
<!-- /ko -->
我该怎么做?
也'数据()。因为长度应该是长度,所以“长度/ 2”不起作用。 – gkb