AngularJS UI路由器,部分视图和来自浏览器地址栏的调用视图
AngularJS UI-router, partial views and calling view from browser's location bar
我有这个路由器条目
$locationProvider.html5Mode(true);
.state("main", {
url: "/",
views: {
'' : { templateUrl: 'views/main.html' },
'performance-ui-view@main': {
templateUrl: 'views/gdreport.html',
controller : 'GlobalDashboardController'
}
}
})
.state("main.odometer", {
url: "/odometer",
views: {
'performance-ui-view@main': {
templateUrl: 'views/odometer.html'
}
}
})
使用鼠标时工作正常。我被正确重定向到该页面。直到上周,里程表页面一直是我们的登陆页面。此外,还有另一个 AngularJS 应用程序加载我们的应用程序,特别是它们需要在里程表页面中。上周,我们收到了UI设计师的新设计。我更改了菜单和登录页面。它不再是里程表了。我们的 QA 测试人员发现这是一个正确的错误。
所以我试着注释掉$locationProvider.html5Mode(true)这一行;这样我就能看到浏览器位置上的路径。然后我在浏览器上尝试了这些调用,但没有运气。它总是转到 gdreport.html有时甚至是空白的。
http://localhost:9000/#/odometer
http://localhost:9000/#//odometer
http://localhost:9000/odometer
我做错了什么?
这里的重点是父子 url
继承。有一个带有示例的工作 plunker。
子
url
是由它的祖先和自己的url
构建的。但我们可以推翻这种行为。
在示例中是上述状态(main 和 main.odometer),以及名为 main.other
的全新状态。新的具有不同的 url 定义 - 带有前导符号^
// States
$stateProvider
.state('main', {
url: "/",
...
})
.state('main.odometer', {
url: "/odometer", // will be //odometer
...
})
.state('main.other', {
url: "^/other", // will start from the root /other
...
})
因此,在这种情况下,这些链接将具有以下 URL:
<a ui-sref="main.odometer">- will be parent plus child url //odometer
<a ui-sref="main.other"> - will result in /other
在这里查看
文档:
绝对路线 (^)
如果要绝对匹配网址,则需要在网址字符串前面加上特殊符号"^"。
$stateProvider
.state('contacts', {
url: '/contacts',
...
})
.state('contacts.list', {
url: '^/list',
...
});
相关文章:
- 使用 Jasmine 测试主干视图时,浏览器页面不断刷新
- 将数据传递到视图而不刷新浏览器
- AngularJS UI路由器,部分视图和来自浏览器地址栏的调用视图
- 跨浏览器打印视图
- SudoSlider (javascript).不同浏览器中的不同视图
- 无法在浏览器中显示待办事项列表视图
- 如何确定网站是在 iPhone/Android 浏览器上打开的,还是从 iPhone/Android 应用程序网页视图打
- 检测网站是在应用的 Android 浏览器还是网页视图中运行
- 是否可以在我现有的网络视图中通过 Javascript 打开一个新的本机网络浏览器
- 在 Backbone Js 中将数据传递到视图在浏览器中看不到
- 主干:单击浏览器的后退按钮时调用视图的函数
- 如何在浏览器中而不是在 Web 视图中强制打开链接
- 在 Java 应用程序中嵌入类似浏览器的视图并与之交互
- 在不使用滚动条的情况下在巨大的 html 页面周围移动浏览器视图
- 在股票浏览器中打开链接,而不是从 iframe 打开 Web 视图
- 使用 React 在浏览器调整大小时重新渲染视图
- 使用 Javascript 从浏览器的视图源代码功能中获取 HTML
- 从谷歌浏览器控制台内部调用主干视图方法
- Silverlight 5 xaml 视图中的 Web 浏览器控件使用某些 JavaScript 时出现问题
- MVC3 剃须刀在视图中获取浏览器屏幕宽度和高度