2016-02-27 82 views
0

我创造了这个小程序在那里我有以下状态:angularJs stateprovider子状态不加载控制器和模板

restricted.route.js

$stateProvider.state('restricted', { 
    url: '/restricted', 
    templateUrl: 'app/restricted/restricted.html', 
    abstract: true 
}); 

pages.route.js

$stateProvider.state('restricted.pages', { 
    url: '/pages', 
    templateUrl: 'app/restricted/pages/pages.html', 
    controller: 'pagesController', 
    controllerAs: 'vmPages' 
}); 

detail.route.js

$stateProvider.state('restricted.pages.detail', { 
    url: '/:id', 
    controller: 'pageDetailController', 
    controllerAs: 'vmDetail', 
    templateUrl: 'app/restricted/pages/detail/detail.html' 
}); 

app.run.js

$urlRouterProvider.otherwise('/restricted/dashboard'); 

当我加载URL#/限制/网页一切正常。控制器已加载并显示视图。 当我加载URL#/ restricted/pages/1时,控制器和状态为'restricted.pages'的视图被加载并执行。 状态被清楚地识别,因为$ urlRouterProvider.otherwise未被执行。

有没有人有一个想法,我在做什么错在这里?

谢谢!

回答

0

是否有意将细节作为页面(列表?)状态的子状态?如果是这样,您需要将<div ui-view></div>放入名为app/restricted/pages/pages.html的模板中。

如果这不是您的意图,我建议将详细状态重命名为restricted.pages_detail,因为每个点都在状态定义中引入了嵌套级别。

+0

太愚蠢了!这不是我的意图。将状态更改为restricted.pages_detail解决了所有问题......谢谢! – bartman

0

我认为你的问题在于HTML,嵌套状态应该加载到父元素的ui-view标记中。

相关问题