Angular-UI-router 嵌套状态为父级的“无此类状态”
angular-ui-router nested states "no such state" for parent
我在设置嵌套视图的状态时遇到了问题。
这是我的测试模板的相关部分,它正在加载到我的索引.html上的"主"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: {
"testcontent@test": {
controller: 'Test1Ctrl',
templateUrl: 'test/page1/page1.tpl.html'
}
},
data:{ pageTitle: 'Test Page 1' }
})
.state( 'test.page2', {
url: '/page2',
views: {
"testcontent@test": {
controller: 'Test2Ctrl',
templateUrl: 'test/page2/page2.tpl.html'
}
},
data:{ pageTitle: 'Test Page 2' }
})
//.state( 'test.page3', {
// url: '/page3',
// views: {
// "testcontent@test": {
// 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: {
"testcontent@test": {
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(( 调用链接在一起?
首先,你有一个问题:循环模块依赖。 test
取决于test.page3
取决于test
。
然后,使用父模块的父状态的模块应依赖于它。
具有以下模块声明:
angular.module( 'test', [
'ui.state',
'ui.bootstrap'
]);
和
angular.module( 'test.page3', [
'test'
]);
您的$stateProvider
配置将正常工作。
您最终应该能够对其他页面具有相同的依赖结构。
相关文章:
- 如何知道鼠标按钮的当前状态(mouseup状态或mousedown状态)
- 更改为其他状态时保持状态
- 获得readyState为4和状态200加上状态文本“0”;OK”;而成功函数仍然没有;我没有接到电话
- 使用Angular UI Router,如何使一个状态成为所有状态的子状态
- 当登录状态为组件状态时,如何使用react路由器实现依赖登录的路径
- jQuery click() 在悬停状态处于活动状态之前不会在点击时触发
- 角度路由器不选择子状态(嵌套状态)
- 如何在 UI 路由器中重构单独的状态和抽象状态
- 实现状态—何时将状态更改为脱机
- 从stateChangeStart中的子状态访问父状态的参数
- Angular UI Router-子状态和父状态中的参数返回错误的模板
- 如何检查访客'的IP地址仍然处于活动状态或联机状态
- 每当我执行推送状态时,状态更改就会启动
- 修改父状态的子状态“一次点击”
- uirouter父状态,子状态控制器
- 使用Symfony重新加载后的推送状态和页面状态
- 当子菜单处于活动状态或悬停状态时,保持锚点悬停状态
- 重定向问题使用推送状态/弹出状态-与javascript
- 当一个巨大的javascript正在执行时,Firefox将进入无响应状态
- Angular-UI-router 嵌套状态为父级的“无此类状态”