【问题标题】:My state changes but the page is not refreshing properly我的状态发生了变化,但页面没有正确刷新
【发布时间】:2015-08-02 14:51:14
【问题描述】:

我的申请中有 4 个页面:

  1. login.html:全身登录页面。
  2. base.html:只是简单的页面包含 ui-view 标签,仅用于容纳其他视图。
  3. main.html:包含菜单页眉页脚
  4. 仪表板:包含一些面板图表等

以下是我声明路线的方式:

$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 中定义的灰色)

有人可以解释为什么登录背景在单独的页面上仍然可见吗?

【问题讨论】:

  • 您说的是 jquery backstretch 插件,但您没有提到您是如何使用该插件的。也为此添加代码。
  • 你的问题几乎毫无疑问与 jQuery 插件有关......如果你要做任何操纵 DOM 的事情(听起来像这样),它应该在指令中完成,很多很多 jQuery 的东西已经被封装到 jQuery/Angular 指令中,你可以将它们作为依赖项放入 add 并使用,但是如果不存在这个构建它们并不是超级困难(了解 angular DDO 是,但你不不需要完全理解才能让它工作)。 github.com/rprovost/ng-backstretch(谷歌角度回弹)
  • jquery backstretch 像这样在登录视图中使用

标签: jquery html css angularjs angular-ui-router


【解决方案1】:

我知道您可以将属性添加到目标目的地状态 ->

{
  reload: true
}

至于为什么它会持续存在,取决于您如何处理(或不处理)控制器中各种状态的范围。

【讨论】:

  • 在登录按钮上也试过这个,点击`$state.go('base.main.dashboard',{},{reload: true});` 但同样的问题
猜你喜欢
  • 2016-07-30
  • 1970-01-01
  • 2021-11-25
  • 2017-01-23
  • 2021-03-02
  • 1970-01-01
  • 2021-01-27
  • 2022-07-15
  • 2021-03-20
相关资源
最近更新 更多