当前位置: 首页 > 知识库问答 >
问题:

如何重新加载当前状态?

潘银龙
2023-03-14

我正在使用Angular UI路由器,希望重新加载当前状态并刷新所有数据/重新运行当前状态及其父级的控制器。

我有3个州级:directory.organisations.details

目录组织包含一个包含组织列表的表。单击表loads目录中的项目。组织。$StateParams传递项目ID的详细信息。因此,在详细信息状态下,我加载此项目的详细信息,编辑它们,然后保存数据。目前一切正常。

现在我需要重新加载这个状态并刷新所有数据。

我尝试过:

 $state.transitionTo('directory.organisations');

这会转到父状态,但不会重新加载控制器,我猜是因为路径没有更改。理想情况下,我只想留在目录中。组织。详细信息状态并刷新父级中的所有数据。

我也尝试过:

$state.reload()

我在$state的API WIKI上看到了这一点。“重新加载”(错误,控制器立即重新启动,很快修复)

如有任何帮助,我们将不胜感激?

共有3个答案

韩智明
2023-03-14

这将是最终的解决方案。(灵感来源于@Hollan\u Risley的帖子)

'use strict';

angular.module('app')

.config(function($provide) {
    $provide.decorator('$state', function($delegate, $stateParams) {
        $delegate.forceReload = function() {
            return $delegate.go($delegate.current, $stateParams, {
                reload: true,
                inherit: false,
                notify: true
            });
        };
        return $delegate;
    });
});

现在,无论何时需要重新加载,只需调用

$state.forceReload();
席兴朝
2023-03-14

此解决方案适用于AngularJS V.1.2.2:

$state.transitionTo($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});
养枫涟
2023-03-14

我发现这是使用ui路由器刷新的最短工作方式:

$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams

更新版本的更新:

$state.reload();

它是以下对象的别名:

$state.transitionTo($state.current, $stateParams, { 
  reload: true, inherit: false, notify: true
});

文档:https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_reload

 类似资料:
  • 问题内容: 我正在使用Angular UI Router,并希望重新加载当前状态并刷新所有数据/为当前状态及其父级重新运行控制器。 我有3个状态级别: directory.organisations.details directory.organisations 包含一个带有组织列表的表。单击表中的一个项目将加载$ directoryParams传递该项目的ID的 directory.organi

  • 本文向大家介绍angular-ui-router 重新加载当前状态,包括了angular-ui-router 重新加载当前状态的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用$state.reload控制器中的方法重新加载当前状态 这是的简写(摘自官方文档的代码) 在您的状态上运行重载也会重新启动控制器并重新解析所有已解析的值。

  • 问题内容: 当用户访问未经授权的个人页面(例如个人资料)时,我的后端302重定向到控制器操作,该操作代替部分个人资料来提供登录部分。由于它302重定向到返回部分操作的动作,因此URL地址栏与用户尝试访问的页面(“ / profile”)没有变化。 我本来打算“修复”该问题,但实际上我认为它可以提供良好的用户体验,而不是将返回网址作为查询参数来处理。 想法是一旦他们登录,我只想重新加载当前路由,也可

  • 问题内容: 例如,我希望此导航更改可重新加载状态: 但我不希望此导航重新加载状态: 根据ui-router文档,设置应可完成此操作,但请尝试以下操作。当为时,即使文档说应该更改路径参数,它也不会重新加载状态。 Plunkr:http: //run.plnkr.co/ZPy9uabYlkMilwdS/#/param 问题答案: 这是UI-Router中的错误,已在0.2.15版中修复: https:

  • 问题内容: 我有以下代码片段,想知道是否有可能通过更新来实现此菜单行为: 步骤1.在鼠标悬停 链接1 -—>上,它将转换为1.5em到右侧(已设置); 第2步。在 链接1上, 单击---->菜单按钮也将保持在 页面重新加载时 已经平移的位置) ,直到单击新菜单按钮 (未设置)为止 ), 然后加载另一页 。 注意:“下一个/上一个”按钮的“代码”部分保持不变(或必须编辑,以保持其功能)。 note2

  • 问题内容: 我正在尝试实现一些功能,即单击屏幕上的按钮将导致我的[QuerydataTable刷新(因为自创建dataTable以来服务器端数据源可能已更改)。 这是我所拥有的: 但是当我运行它时,它什么也没做。单击按钮时刷新dataTable的正确方法是什么?提前致谢! 问题答案: 您可以尝试以下方法: