我遇到了一個問題,設置嵌套視圖的狀態。angular-ui-router嵌套狀態「沒有這樣的狀態」父母
下面是我的測試模板的相關部分,它正在我的index.html中加載到'main'ui視圖中。
<div class="row-fluid">
<div class="col-lg-3">
<ul class="nav nav-list">
<li class="nav-header">Header 1</li>
<li class="active"><a href="#/test/page1">Page 1</a></li>
<li><a href="#/test/page2">Page 2</a></li>
<li class="nav-header">Header 2</li>
<li><a href="#/test/page3">Page 3</a></li>
</ul>
</div>
<div class="col-lg-9">
<div class="container" ui-view="testcontent"></div>
</div>
下面是我的測試模塊的JS。
angular.module('test', [
'ui.state',
'ui.bootstrap',
'test.page1',
'test.page2',
'test.page3'
])
.config(function config($stateProvider) {
$stateProvider.state('test', {
url: '/test',
templateUrl: 'test/test.tpl.html',
views: {
"main": {
controller: 'TestCtrl',
templateUrl: 'test/test.tpl.html'
}
},
data:{ pageTitle: 'Test' }
})
.state('test.page1', {
url: '/page1',
views: {
"[email protected]": {
controller: 'Test1Ctrl',
templateUrl: 'test/page1/page1.tpl.html'
}
},
data:{ pageTitle: 'Test Page 1' }
})
.state('test.page2', {
url: '/page2',
views: {
"[email protected]": {
controller: 'Test2Ctrl',
templateUrl: 'test/page2/page2.tpl.html'
}
},
data:{ pageTitle: 'Test Page 2' }
})
//.state('test.page3', {
// url: '/page3',
// views: {
// "[email protected]": {
// controller: 'Test3Ctrl',
// templateUrl: 'test/page3/page3.tpl.html'
// }
// },
// data:{ pageTitle: 'Test Page 3' }
//})
;
}) // Module configuration
.controller('TestCtrl', function TestCtrl($scope) {
});
這工作正常,如果在父母的模塊的配置設置狀態的配置。
我想要做的是在模塊的配置部分設置狀態,而不是在父級。
angular.module('test.page3', [
'ui.state',
'ui.bootstrap',
'test'
])
.config(function config($stateProvider) {
$stateProvider.state('test.page3', {
url: '/page3',
views: {
"[email protected]": {
controller: 'Test3Ctrl',
templateUrl: 'test/page3/page3.tpl.html'
}
},
data:{ pageTitle: 'Test Page 3' }
});
}) // Module configuration
.controller('Test3Ctrl', function Test3Ctrl($scope) {
});
如果我嘗試AppCtrl toBeTruthy這個然後我一般測試一個錯誤炸燬「未能實例模塊test.page3因:沒有這樣的狀態測試」。
有沒有辦法做到這一點,或者我堅持鏈接在測試模塊中的所有.state()調用?
模塊中存在一個循環依賴問題,所以我給了lib3d的回答。謝謝!我最終在測試模塊的依賴關係中需要test.page1,test.page2和test.page3,並在每個子模塊中刪除了測試的依賴關係。我最終更新了從〜0.0.1到0.2.10的angular-ui-router,這導致我必須將ui.state更改爲ui.router,但它允許我將狀態移至子配置節,而不是鏈接它們全部放在測試模塊中。 – MattP
謝謝。但是,你一定要扭轉你的樹木樹並使其工作。將爲您的模塊提供服務的子模塊與僅在應用程序層次結構中插入頁面的子模塊之間存在差異。 – lib3d
這是我能夠使其工作的唯一方法。當我試圖改變周圍的命令時,找不到路線並將我送到。其他地方。 – MattP