2016-02-27 68 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標記中。