Angular嵌套视图无法工作
angular nested views not working
我想构建一个电子邮件客户端应用程序,其中用户将首先看到一个登录面板,然后将被重定向到主视图与其他几个视图里面。如收到的电子邮件,删除,垃圾邮件等。为了做到这一点,我使用了ui-router和嵌套视图,我的配置代码看起来像这样:
app.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('/',{
url: '/login',
templateUrl: 'views/login.html',
controller: 'loginCTRL'
})
.state('main',{
url: '/main',
templateUrl: 'views/mainView.html',
controller: 'MailCtrl'
}),
.state('main.received', {
url: '/received',
templateUrl: '/views/received.html' ,
controller: 'receivedCTRL'
})
})
.state('main.spam', {
url: '/spam',
templateUrl: '/views/spam.html',
controller: 'spamCTRL'
})
.state('main.removed', {
url: '/removed',
templateUrl: '/views/removed.html',
controller: 'removedCTRL'
})
.state('main.message', {
url: '/message',
templateUrl: '/views/FullMessage.html',
controller: 'MailCtrl'
}) });
但不是显示所有嵌套的视图在我的电子邮件面板它发送我回到登录视图。所有路径都是正确的。
确保main
状态中使用的模板有一个未命名的ui-view
。比如:
<div ui-view></div>
父状态至少需要1个ui-view才能让它的子状态填充(除非你使用一些非常高级的配置)
使用ui-router时,使用$state
代替$location
。$state
是用于在状态之间导航的服务,可以与状态名称一起使用。
在你的loginCtrl
中尝试将$location.path
更改为$state.go('main')
(记住在控制器的参数中包含$state
的依赖关系)
另外,在HTML中创建链接时,请按照Judson Terrell的建议使用ui-sref="state_name"
。
通常当ui-router重定向到默认URL时,这是因为它找不到提供的URL的状态。使用这种方法,您可以确保提供给浏览器的URL与为您的状态配置的URL相同。
如果这不起作用,请尝试注释$urlRouterProvider.otherwise
行以避免重定向。
也许这就是问题所在?你要这个吗?
$stateProvider
.state("otherwise", { url : '/login'})
我也假设你是这样链接的…
<a ui-sref="mystate">Go To My State</a>
相关文章:
- Angular JS-视图不工作
- 单击'Backbone.js视图'不要工作
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- 当htmlMode为true时,Summernote html代码视图与codemirror无法正常工作
- 如果未找到或未在ng视图外工作,则为ng
- 骨干视图渲染的工作原理
- 主干视图实例未按预期工作
- jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
- 部分html视图's控制器未使用KendoPanelBar内容URL在指令模板URL中工作
- ng单击无法在MVC部分视图中工作
- 将节点添加到 KendoUI 树视图无法按预期工作
- 主干木偶布局视图无法正常工作
- 快速单击会导致幻灯片视图无法正常工作
- 网格视图中的Checbox检查条件无法按JavaScript的要求工作
- 添加嵌套视图后代码停止工作
- BackboneJS 视图的函数绑定是如何工作的
- jQuery 手机间隙:- 列表视图中的自动分隔器是否正常工作
- UI 路由器不加载 rawgit 中的视图,但在本地工作
- 加载部分视图时引导折叠无法正常工作
- AngularJs 路由不再工作.地址栏更改,但视图不会更改