繁体   English   中英

在浏览器中更改URL参数时刷新角度页面

[英]Angular page refresh on changing URL parameter in browser

极其简单的要求,但是很难。 有一个简单的页面,我在其中在url路径中打印参数。

http://localhost:8888/ngtest.html#/1234567

ngtest.html

<div ng-app="app" ng-controller="testCtrl">
    {{myId}}
</div>

<script>
var app = angular.module('app', []);
app.controller('testCtrl', function($scope, $location) {
    $scope.myId = $location.$$path;
});
</script>

在浏览器窗口中:

  1. 1234567更改为1234
  2. 点击Enter

什么都没发生。 按F5,它按预期工作。

不知道这是否与浏览器行为有关,但是如何在参数更改+ Enter之后强制页面刷新?

页面刷新已在此处回答

您可以使用$route.reload();

如此处的建议当在url输入中按Enter时您可以尝试侦听路由更改成功:

scope.$on('$routeChangeSuccess')scope.$on('$locationChangeSuccess').

基于上述莱昂建议的完整示例

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>

<div ng-app="app" ng-controller="testCtrl">
    {{myId}}
</div>

<script>
var app = angular.module('app', []);
app.controller('testCtrl', function($scope, $location) {

    // add a listener for when the url changes and user
    // Enter in the address bar
    $scope.$on('$locationChangeStart', function(event) {
        $scope.myId = $location.$$path;
    }); 
});
</script>

基本上,这是注册一个位置更改侦听器并相应地执行操作。 无需路由配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM