2015-09-18 131 views
1

我試圖創建應默認去的ChildState父狀態。 我需要能夠有一個parentController和ChildControllers。 我嘗試以下,但你可以看到我的childControllers不叫。UI路由器父狀態,孩子指出控制器

var app = angular.module('test', ['ui.router']); 

app.config(config); 

app.controller('ParentCtrl', ['$scope', function ($scope) { 
    console.log('parentCtrl'); 
}]); 

app.controller('Child1Ctrl', ['$scope', function ($scope) { 
    console.log('Child1Ctrl'); 
}]); 

app.controller('Child2Ctrl', ['$scope', function ($scope) { 
    console.log('Child2Ctrl'); 
}]); 

狀態:

function config($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/parent'); 

    $stateProvider.state('parent', { 
     abstract: true, 
     views: { 
      'main': { 
       controller: 'ParentCtrl', 
       controllerAs: 'parentCtrl', 
       templateUrl: 'page.html' 
      } 
     }, 
     url: '/parent/' 
    }); 
    $stateProvider.state('parent.child1', { 
     views: { 
      'main': { 
       controller: 'Child1Ctrl', 
       controllerAs: 'child1Ctrl', 
       templateUrl: 'page.html' 
      } 
     }, 
     url: 'child1?param1', 
    }); 
    $stateProvider.state('parent.child2', { 
     views: { 
      'main': { 
       controller: 'Child2Ctrl', 
       controllerAs: 'child2Ctrl', 
       templateUrl: 'page.html' 
      } 
     }, 
     url: 'child2?param2', //is this /parent/child2... ? 
    }); 
} 

你也可以在這裏找到代碼:https://jsfiddle.net/vjgh8ntL/2/

有人能指導我在正確的方向?

回答

1

我想在這種情況下只使用其它方式不同:

$urlRouterProvider.otherwise('/parent/child1?child1=null'); 

入住這working example

有類似Q &一個(甚至不同的解決方案,例如.when()設置)

+0

感謝您的例子,它證明了我所需要的一切 – yeouuu

+0

那真的是很高興地看到,先生;)享受強大的UI,路由器... –

相關問題