ui路由器嵌套的路由控制器没有被调用

我正试图调用一个控制器,应该与home.category路由连接,但它不被调用。 有什么不对?

 $stateProvider .state("home", { // Use a url of "/" to set a states as the "index". url: "/", templateUrl: APP_CONFIG.baseUrl + 'partials/layouts/home.html', controller: 'MainCtrl' }) .state("home.category", { // Use a url of "/" to set a states as the "index". url: "c/:categoryId/:categorySlug", controller: function($stateParams) { alert($stateParams.categoryId); } }) 

那么,我发现从ui-router给出的文件的线索说

您可以将控制器分配给您的模板。 警告:如果未定义模板,控制器将不会被实例化。

https://github.com/angular-ui/ui-router/wiki#controllers

但我试图添加template ,仍然没有工作,然后我看到我的父路由模板没有<div ui-view></div> (我错误地删除它),所以当我加回它的工作: ),所以,为了实例化我们孩子的路线控制器,我们必须在父母的路线模板中有<div ui-view></div>

控制器可能不被调用的另一个原因是如果你有一个状态的多个视图,而不把控制器放在视图对象内。 这是很难find的,因为没有错误。 它只是不被调用。

这个控制器不会被调用:

 .state('home', { url: '/', controller: function($scope){ $scope.someThings = "some stuff"; }, views: { "view1": { template: '<p>{{someThings}}</p>' }, "": { template: '<p>Some other stuff</p>' } } }) 

控制器必须进入视图对象:

 .state('home', { url: '/', views: { "view1": { template: '<p>{{someThings}}</p>', controller: function($scope){ $scope.someThings = "some stuff"; }, }, "": { template: '<p>Some other stuff</p>' } } }) 

在closures事件有人正在改变一个项目与ui.router工作,而不是ngRoute,我有这个问题,因为我忘了把ng-view指令改为ui-view:Z