$ state.go()不加载视图(Url在地址字段中已更改),但视图显示第二次单击时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$ state.go()不加载视图(Url在地址字段中已更改),但视图显示第二次单击时相关的知识,希望对你有一定的参考价值。

在项目中使用Angular JS ui.router。

我在app.js中添加了以下状态映射:

.state( 'confirmCart', {
    url: "/cart/confirmCart",
    controller: "ConfirmCartCtrl",
    templateUrl: "/ng-apps/selfEnroll/pages/confirmCart/confirmCart.html"
} )

在control.js中添加了一个函数:

$scope.reviewCart = function() {
    $state.go("confirmCart");
    return;
}

在主页上添加了一个按钮:

<div>
 <button ng-click="reviewCart()">Review Cart Plans</button>
</div>

然后设置视图区域div使用'ui-view'属性。

<div class="container">
    <div ui-view></div>
</div>

首次单击此按钮时,$ state.go()不会加载视图,但是在浏览器地址字段中更改了模板Url。但是,视图显示第二次单击时。

我注意到,当点击第一次时,浏览器开发者工具“网络”选项卡下加载了视图页面。但是视图页面没有显示在窗口中。必须通过第二次单击按钮显示此视图。我很困惑。

Screenshot of the developer tools shows

答案

试试这个:

$state.go("confirmCart", {}, {reload: true});

或这个:

$state.go("confirmCart").then( () => $state.reload() )

以上是关于$ state.go()不加载视图(Url在地址字段中已更改),但视图显示第二次单击时的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个视图正确重新启动$ state.go视图

angularjs中的$state.go

如何在新标签中打开 $state,go()

在 $state.go 之后执行 $window.location.reload(true)

Ionic $state.go 在设备上不起作用

使用 Ionic 框架在登录/注销时清除历史记录并重新加载页面