2016-08-13 2 views
1

У меня есть один «не наблюдаемый» массив объектов в модели вида, и я хочу отобразить некоторые div-s в соответствии с массивом.Нокаут не наблюдаемая длина массива внутри if block

<div data-bind="foreach: sequences"> 
    <!-- ko if: $parent.sequences.length-1 > $index --> 
     <div>Some content </div> 
    <!-- /ko -->   
</div> 

Код выше должен отображать DIV для всех элементов, кроме последнего, но он не работает, я не получил какой-либо ошибки, я знаю, что происходит?

ответ

1

$index является наблюдаемой, так что вам нужно использовать $index():

<div data-bind="foreach: sequences"> 
    <!-- ko if: $parent.sequences.length-1 > $index() --> 
     <div>Some content </div> 
     <div data-bind="text: $data"></div> 
    <!-- /ko -->   
</div> 

Demo JSFiddle.

+0

Спасибо, что это. Я думал, что ошибка находится в первой части условия, потому что я пробую ее с решением: и он не работает , – Milos

1

Вы можете использовать видимое связывание для этого:

<div data-bind="foreach: sequences"> 
    <div data-bind="visible: $parent.sequences.length-1 > $index()"> 
     Some content 
    </div> 
</div> 
+0

Спасибо, он также работает, но «namesv» отвечает на лучший вопрос, и я принимаю его ответ :) – Milos

Смежные вопросы