AngularJS, UI路由器-导航到"foo/bar"去“foo"”
AngularJS, UI Router - Navigating to "foo/bar" goes to "foo"
对于一个特定的应用程序,我已经定义了几个状态,但我有两个特别的问题。
它们是这样的:
$stateProvider.state('foo', {
url: '/foo',
views: {
"main": {
controller: 'fooController',
controllerAs: 'ctrl',
templateUrl: 'a.html'
},
}
}).state('bar', {
url: '/foo/bar/:id',
views: {
"main": {
controller: 'barController',
controllerAs: 'ctrl',
templateUrl: 'b.html'
},
}
});
问题:当我在浏览器中直接导航到/foo/bar/123时,路由工作。然而,如果我导航到/foo,然后到/foo/bar/123状态短暂加载,然后导航回/foo。
问题:除了改变'/foo/bar'为'/bar'我怎么能解决这个问题?
我相信所有你正在寻找的是一个改变你的配置。
$stateProvider.state('foo', {
url: '/foo',
views: {
"main": {
controller: 'fooController',
controllerAs: 'ctrl',
templateUrl: 'a.html'
},
}
}).state('foo.bar', {
url: '/bar/:id', //This will still evaluate to /foo/bar/:id
views: {
"main": {
controller: 'barController',
controllerAs: 'ctrl',
templateUrl: 'b.html'
},
}
});
你的url应该仍然是/foo/bar/:id
,但是ui-router会为你将它们连接在一起,因为你说foo
是bar
的父路由。它现在可能会感到困惑,因为它看到两个使用/foo
的路由,并且不知道使用哪个,所以它默认使用定义的第一个。
参考:https://github.com/angular-ui/ui-router/wiki/URL-Routing
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- JavaScript美学:;函数foo(){}"vs“;var foo=函数(){}"AMD功能
- jQuery"return{foo:bar,foo2:bar2}"-它是什么
- <a href="javascript:foo(this)">通过Window,我想要标记
- 在整个html文档中搜索精确的代码""<br>foo<br>"并将其