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

AngularJS UI路由器-更改url而不重新加载状态

桓喜
2023-03-14
services.service('$locationEx', ['$location', '$route', '$rootScope', function($location, $route, $rootScope) {
    $location.skipReload = function () {
        var lastRoute = $route.current;
        var un = $rootScope.$on('$locationChangeSuccess', function () {
            $route.current = lastRoute;
            un();
        });
        return $location;
    };
    return $location;
}]);
$locationEx.skipReload().path("/category/" + $scope.model.id).replace();

有没有可能--在Angular-ui-router中也这样做?

我为什么需要这个?让我用一个例子来解释:
创建新类别的路由是/category/new,在单击保存时显示success-alert,并且要将路由/category/23(23-是新项的id存储在数据库中)

共有1个答案

温亮
2023-03-14

简单地说,您可以使用$state.transitionto而不是$state.go$state.go在内部调用$state.transitionto,但自动将选项设置为{location:true,inherit:true,relative:$state.$current,notify:true}。您可以调用$state.transitionTo并设置notify:false。例如:

$state.go('.detail', {id: newId}) 

可由

$state.transitionTo('.detail', {id: newId}, {
    location: true,
    inherit: true,
    relative: $state.$current,
    notify: false
})

编辑:根据fracz的建议,它可以是:

$state.go('.detail', {id: newId}, {notify: false}) 
 类似资料:
  • 问题内容: 当前,我们的项目正在使用default ,而我正在使用此“ hack”来进行更改,而无需重新加载页面: 和在 我想到的替换用筑巢路线,但无法找到这。 有可能吗? 我为什么需要这个?让我用一个例子来解释: 创建新类别的路线是在SAVE 之后显示的,我想将路线更改为(23-是存储在db中的新项目的id) 问题答案: 只需使用即可代替 。内部调用,但会自动将选项设置为。您可以呼叫和设置。例如

  • 问题内容: 有人知道如何在不更改url的情况下更改ui路由器状态吗?如下代码所示;在某些情况下,需要将用户重定向到403或401状态。我希望能够执行此重定向而无需更改url。 问候,klmdb 问题答案: 将选项传递给$ state.go 实际使用它:http : //plnkr.co/edit/w2aolrt9wdW3EFcEB3Lw?p=preview

  • 我知道这不是react router的默认行为/功能,可以帮助我们轻松地重新加载当前组件,但我真的需要在我的应用程序中使用它。 我的应用程序处理产品。我有一个可以加载的产品列表,当我单击某个项目时,它会显示相关的产品详细信息。 在该页面上,我有加载相同组件的相关产品链接,但有另一个产品详细信息,位于 我在我的组件willmount中获取数据,似乎如果我只更改URL,就不会装载新组件,因此,我总是显

  • 我有一个组件,它显示了可以使用url查询参数过滤的项目列表,这些项目从api分页,如果设置了过滤器,我需要再次调用第一个页面,这个第一次调用是在路由器的解析器中,所以我需要的是路由器以相同的方式重新加载,就像我来自其他URL一样。 app.routes.ts app.resolver.ts app.component.ts app.service.ts 其他.ts组件

  • 问题内容: 嘿,我注意到在浏览GitHub存储库时,它使用AJAX加载每个文件夹/文件。 我了解所有这些,我只是想知道他们如何更改URL。您可以使用JavaScript获取并设置URL吗?如果是这样,对于将基于JavaScript的网站的一部分添加为书签可能非常有用。(其中的几页,通过JavaScript在其中移动) 谢谢。 问题答案: 它在历史记录操作API中使用了新的push/ pop状态功能

  • 问题内容: 好的,这就是我想要做的(我认为Google也是这么做的): 方案A: 在页面中,假设有3个部分。当用户点击“链接”部分时,的内容将通过AJAX加载并嵌入到页面中。 方案B: 当被加载时,我们实际上去非常相同的页面(如在方案A) - 和负载通过AJAX -如前。 问题 : 我们有2个相同的结果页面,但是URL不同(在第一种情况下,它只是,而在第二种情况下是)。 我想做的事 : 在方案A中