2015-12-10 1 views
1

Я бы хотел условно показать страницу входа, но столкнулся с проблемой. Я воспроизводил его с официальным aurelia skeleton application путем изменения app.html к следующему:Скрытый вид маршрутизатора ломает привязку данных - Aurelia

<template> 
    <require from="nav-bar.html"></require> 
    <require from="bootstrap/css/bootstrap.css"></require> 

    <nav-bar router.bind="router"></nav-bar> 

    <template if.bind="false"> 
    <div class="page-host"> 
     <router-view></router-view> 
    </div> 
    </template> 
    <h1 if.bind="true">Not logged in, show login page</h1> 
</template> 

Проблема не в том, что объект маршрутизатора больше не определен, и поэтому Navbar не работает (не навигационные элементы не показаны). Кто-то знает, что я делаю неправильно здесь?

+0

очень трудно понять, что там происходит. Вы должны предоставить больше информации о том, что делает ваше приложение. Взгляните на Aurelia Docs по адресу http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.0.3/doc/article/cheat-sheet и найдите «Настройка навигационного трубопровода», , Я считаю, что это поможет вам. –

+0

Вы правы. Теперь я пояснил, что использую официальное приложение с каркасом aurelia, и это выше, это то, что я изменил, чтобы воспроизвести проблему. Я не хочу использовать навигационный конвейер, поскольку моя идея заключалась в том, чтобы обрабатывать логин без перенаправления (это может быть ошибочным само по себе (?), Но должно работать). –

+0

Он пробовал ваш код здесь, и он отлично работает ... возможно, есть еще одна вещь, которая нарушает ваше приложение. Предоставьте полный код app.js, включая .js текущего маршрута. –

ответ

2

Похоже, что если вы удалите <router-view>, router не работает. Вы должны использовать другой подход для обработки логина.

Взгляните на Aurelia Docs на номер http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.0.3/doc/article/cheat-sheet и найдите «Настройка навигационного трубопровода». Я считаю, что это поможет вам

EDIT

Согласно комментарию Джереми Danyow, то функция setRoot(module) будет простым решением. Более подробная информация на https://stackoverflow.com/a/33458652/725866

+0

В итоге я использовал настраиваемый контур навигации, связанный с выше. Однако с самого начала моя цель заключалась в том, чтобы избежать использования логина, поскольку я не думаю, что это имеет смысл и усложняет кодирование. Я потерпел неудачу с этим и в значительной степени сдался. –

+0

['setRoot'] (http://stackoverflow.com/a/33458652/725866) было бы проще, чем подключиться к навигационному конвейеру –

+0

@JeremyDanyow это правда! Спасибо за комментарий. Я обновлю ответ с вашей ссылкой, чтобы помочь будущим людям! –