我的应用程序中有4个页面:
- login.html:正文登录页面。
- base.html:只是一个简单的页面包含ui-view标签,只是为了容纳其他视图。
- main.html:包含菜单页眉
- 仪表盘:包含一些面板图表等
$stateProvider
.state('base', {
abstract: true,
templateUrl: 'tpl/base.html'
})
.state('base.main', {
abstract: true,
templateUrl: 'tpl/main-layout.html',
})
.state('base.login', {
url: '/login',
templateUrl: 'views/login.html',
data: {
pageTitle: 'Login',
pageSubTitle: '',
}
})
// Dashboard
.state('base.main.dashboard', {
url: "/dashboard",
templateUrl: "views/dashboard.html",
data: {
pageTitle: 'Dashboard',
pageSubTitle: ''
}
})
问题是这些状态工作得很好;我可以切换到任何页面,但在登录页面中,我使用jQuery backstretch插件在后台显示一些图像。
因此,当我从登录切换到其他路由(如仪表板)时,其他状态页面显示良好,但登录的背景图像仍然适用。如果我刷新页面,那么只有该图像被删除,并且显示仪表板的原始背景(原始背景只是在main-layout.html中定义的灰色)
有人能解释一下为什么登录的背景仍然在单独的页面上可见吗?
我知道你可以添加一个属性到目标目的地状态->
{
reload: true
}
至于为什么持久化,取决于您如何处理(或不处理)控制器中各种状态的范围。