2016-04-13 1 views
0

У меня есть 3 вида пользовательского интерфейса на странице закодированной как это:Угловая UI Route/Государственная разработка и реализация не работает правильно

<div id="wrapper"> 
 

 
    <div ui-view="nav"></div> 
 

 
    <div id="page-wrapper" class="gray-bg"> 
 
    \t <div ui-view="topbar"></div> 
 
    <div class="wrapper wrapper-content animated fadeInRight"> 
 
\t \t <div ui-view></div> 
 
    </div> 
 
    \t <div ui-view="footer"></div> 
 
</div>

Состояние/маршрут сконфигурированной для части приложения выглядит как это:

angular.module('core').config(['$stateProvider', 
 
    function ($stateProvider) { 
 
    $stateProvider 
 
     .state('core', { 
 
     abstract: true, 
 
     url: '/core', 
 
     views: { 
 
      '[email protected]': {templateUrl:'modules/core/client/views/partials/nav.view.html'}, 
 
      '[email protected]': {templateUrl:'modules/core/client/views/partials/topbar.view.html'}, 
 
      '[email protected]': {templateUrl:'modules/core/client/views/partials/footer.view.html'} 
 
     }, 
 
     data: { 
 
      roles: ['super', 'admin', 'narc'] 
 
     } 
 
     }) 
 
     .state('core.settings', { 
 
     url: '/settings', 
 
     views: { 
 
      '': {templateUrl:'modules/narc/client/views/content/canvas.list.view.html'} 
 
     }, 
 
     data: { 
 
      roles: ['super', 'admin', 'narc'] 
 
     } 
 
     }); 
 
    } 
 
]);

У меня есть две проблемы, с которыми я сталкиваюсь.

  1. Когда ссылка навигации устанавливается на Ui-sref = «core.settings» и ссылка щелкнул, я вижу canvas.list.view.html в нагрузке ресурсов, но не загружается он в первичный «неназванный» вид, я также попробовал это с именованным ui-view и тем же результатом.

  2. Когда же нажатии на ссылку, он изменяет window.location к в URL, указанную в конфигурации, но если я обновить страницу, она ошибки 404, поскольку он ссылается на состояние, а не фактического местоположения. .. если я ставлю вручную #! перед URL, он подъезжает пустую страницу (с нав topbar и нижний колонтитулы загружен, но не безымянный вид не загружен.

Спасибо за вашу помощь !!

ответ

0

Я понял # 2 выше, путем изменения

$locationProvider.html5Mode(true).hashPrefix('!')

к

$locationProvider.html5Mode(false).hashPrefix('!');

Это позволяет URLs фактически скопировать/вставить/общий и по-прежнему работать до тех пор, как аутентификация на месте ...

Я понял, # 1, а также, абстрактный «родитель» государство нуждалось шаблон:

template: '<ui-view/>'

Это сделало всю работу. да!

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