【问题标题】:Can't catch DOM on $state.go无法在 $state.go 上捕获 DOM
【发布时间】:2018-04-01 09:00:35
【问题描述】:
$state.go('client').then(uiService.showAdminPanel);

我正在使用 ui.router 更改 AngularJS 中的状态。 uiService.showAdminPanel 是一个函数,它使用document.querySelector() 查找处于新状态的 DOM 元素。 但是,无论是在 resolve 还是 onSuccess() 函数中,它都无法在 <ui-view> 中找到任何内容。 我试图在 10 毫秒内在 setTimeout() 中执行此操作,并且效果很好。也许有人知道,延迟从何而来?

【问题讨论】:

    标签: javascript angularjs angular-ui-router


    【解决方案1】:

    使用

    $rootScope.$on("$stateChangeSuccess", function(event,toState, toParams, fromState, fromParams ){
     //TODO AFTER STATE CHANGE SUCCESSFULLY
    })
    

    【讨论】:

    • 你的 line 和 $transitions.onSuccess() 函数有区别吗?
    • $transitions 是 ui-routing 1.x 系列中的生命周期钩子,参考此链接ui-router.github.io/guide/ng1/…
    • 是的,问题是他们说我可以在转换成功完成后调用 onSuccess 挂钩。我假设转换完成后,DOM 可用。但这不是短期的
    猜你喜欢
    • 2015-02-19
    • 2021-06-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2015-11-04
    相关资源
    最近更新 更多