2014-01-20 4 views
0

Можно ли автоматически перенаправить страницу на первый ребенок, если ни один из детей текущей страницы не отображается? Сценарий заключается в том, что я создаю ряд областей с вкладками, и я контролирую маршрутизацию через Knockout и Pager.js. Я бы хотел, чтобы в одной области содержимого вкладки были дочерние вкладки, маршрут должен автоматически настраиваться, чтобы показать, что первый ребенок активен. Я не могу просто установить эту дочернюю страницу с ролью «старт», потому что я не могу гарантировать, что первый ребенок всегда будет таким же.Повторить на первую дочернюю страницу, если ни один из них не отображается в pager.js

Я создал основную скрипку, показывая архитектуру:

http://jsfiddle.net/ePY3C/2/

<div id="myApp"> 
<div data-bind="page: { id: 'start', role: 'start' }"> 
    <ul class="nav nav-tabs" data-bind="foreach: $page.children"> 
     <li data-bind="css: {active: isVisible}"><a data-bind="text: $data.val('title'), page-href: $data"></a></li> 
    </ul> 
    <div data-bind="page: { id: 'page-one', title: 'Page One' }"> 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, quae totam illum eaque reiciendis incidunt tempore alias a possimus laboriosam dolorum officia assumenda fugit quo tenetur voluptas recusandae labore culpa.</p> 
    </div> 
    <div data-bind="page: { id: 'page-two', title: 'Page Two' }"> 
     <p>Suscipit, quibusdam, ex rerum quae minus ullam esse aliquam non nihil officia! Doloribus expedita veritatis porro quae quos ad ex dolorum minus temporibus facilis. Quia, ipsum officia ullam perferendis minima?</p> 
    </div> 
    <div data-bind="page: { id: 'page-three', title: 'Page Three' }"> 
     <p>Tempora, similique laborum quas eos ullam sit consequatur tenetur corrupti quod dolore! Porro, ex, architecto, pariatur perspiciatis a itaque velit illo autem rem nihil error minima minus alias nostrum enim?</p> 
    </div> 
    <div data-bind="page: { id: 'page-four', title: 'Page Four' }"> 
     <p>Doloribus, dolore, eligendi, vitae vero fugiat accusantium ex error eum qui enim molestiae labore dignissimos aperiam quis suscipit placeat unde consequatur ipsum eos in sed dolorem officia consequuntur nihil mollitia.</p> 
    </div> 
    <div data-bind="page: { id: 'page-five', title: 'Page Five' }"> 
     <p>Dolor, quo quis voluptates suscipit velit harum totam officiis quisquam quia perspiciatis amet aspernatur tempore magnam. Eos, in, vel similique temporibus dolores animi neque delectus sunt blanditiis voluptatem nisi cum!</p> 
    </div> 
</div> 

Что результат должен быть в том, что она автоматически направляет на страницу ребенка с идентификатором маршрута 'Первая страница'.

ответ

1

Один из способов решения проблемы - использовать role: 'start' несколько раз. См. this JsFiddle.

+0

Отлично! Я не знал, что вы можете иметь несколько объявлений о начале работы в одной и той же модели представления. – hereswhatidid