2014-12-28 3 views
0

PLNKR: http://plnkr.co/edit/Or4JTiUrPOJUoW78c8XdUI-маршрутизатор не работает вложенными контроллер маршрут

Эй, ребята, я изо всех сил с вопросом, что я был в состоянии упростить до следующего образца:

var myapp = angular.module('myapp', ["ui.router"]) 
myapp.config(function($stateProvider, $urlRouterProvider){ 
    $urlRouterProvider.otherwise("/items/123"); 

    $stateProvider 
     .state('dashboard', { 
      url: "/items/:itemId", 
      templateUrl: 'dashboard.html', 
      controller: function($scope, $stateParams){ 
       $scope.itemId = $stateParams.itemId; 
      }, 
      resolve: { 
       itemParam: ['$stateParams', function($stateParams){ 
        return $stateParams.itemId; 
       }] 
      } 
     }) 
     .state('dashboard.history', { 
      parent: 'dashboard', 
      url: "/history", 
      templateUrl: 'dashboard.history.html', 
      controller: function($scope, itemParam){ 
       $scope.itemId = itemParam.itemId; 
      } 
     }); 
}) 

приборной панели .html

<h1>Dashboard for item {{itemId}}</h1> 
<a ui-sref="dashboard.history({itemId: 123})">History</a> 

dashboard.history.html

<h1>Dashboard History for item {{itemId}}</h1> 

Проблема заключается в том, что контроллер истории не вызывается, и я не получаю ошибок. Может кто-нибудь объяснить мне, что случилось?

Заранее благодарен!

ответ

1

Это происходит потому, что вы не имеете <ui-view> директиву внутри родительского состояния:

FORKED DEMO

dashboard.html

<h1>Dashboard for item {{itemId}}</h1> 
<a ui-sref="dashboard.history({itemId: 123})">History</a> 
<ui-view></ui-view> 
+0

Понял! Имеет смысл. Спасибо! –

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