2013-05-29 15 views
13

Im пытается получить мой вложенный маршрут работает, но теперь это дает мне трудное время, в течение двух дней :(Три уровня вложенных маршрутов в угловых Ui-маршрутизаторе

один уровня работой тонкого

два уровня работает отлично

три уровня не работает!

может кто-нибудь, пожалуйста, помогите мне?

Спасибо заранее

angular.module('settings', []).config(['$stateProvider', '$routeProvider', '$urlRouterProvider', function($stateProvider, $routeProvider, $urlRouterProvider) { 
    $stateProvider 
     .state('settings', { 
      url: '/settings', 
      template:"Settings", 
      controller: function(){ 
       console.log('settings'); 
      } 
     }). 
     state('settings.branch', { 
      url: '/{branchId:[0-9]{1,8}}', 
      template:"Branch", 
      controller: function(){ 
       console.log('branch'); 
      } 
     }). 
     state('settings.branch.prop', { 
      url: '/prop', 
      template:"Property", 
      controller: function(){ 
       console.log('property'); 
      } 
     }); 
}]); 

'/ Настройки' работает

'/ Настройки/1234' работает

'/ настройки/1234/проп' не работает, всегда возвращают prevues состояние 'отделения'

+0

у вас есть jsfiddle/plunker? – Ven

+0

+1 по необходимости для скрипки/плункера. Где зависимость uirouter? var myapp = angular.module ('myapp', ["ui.router"]) ????? – scalaGirl

ответ

12

Я думаю, вы не объявили ui-view в Филиале

1

У меня была такая же проблема. Для settings.branch.prop, попробуйте установить url на:

url: '/{branchId:[0-9]{1,8}}/prop' 
0

мы получили подобную проблему. Просто нашел решение (не очень красивая мысль)

Таким образом, мы имеем

/b2c/applicationShow --> applicationShowController (b2c.applicationShow) with an /:id 

/b2c/applicationShow/9238490392084/details --> detailsController (b2c.applicationShow.details) 

/b2c/applicationShow/9238490392084/details/someApp --> someAppController (b2c.applicationShow.details.someApp) 

/b2c/applicationShow/9238490392084/details/someApp/someTab --> this has no controller, only declare the previous one as parent. 

Так как же мы ждем от/b2c/заявкиКак до /b2c/заявкиКак/9238490392084/подробности/someApp/someTab (там это таблица, в которой перечислены все приложения, и щелкните ссылку, чтобы довести до конца всю эту вкладку)

Мы пересылаем их по одному.

$state.go(b2c.applicationShow , {id: 9238490392084}) 

Тогда в detailsController

$state.go(b2c.applicationShow.details.someApp); 

Тогда в someAppController

$stage.go(b2c.applicationShow.details.someApp, {tab: someTab}); 

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

0

Попробуйте обернуть DIV с атрибутом Ui ракурса вокруг содержания просмотров ветви, как это так,

<div ui-view> 
    branch content goes here ..... 
    ...... 

</div> 

сделал трюк для меня!

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