非常简单的要求,但很难用这个。有一个简单的页面,我在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>
在浏览器窗口中:
1234567
更改为1234
什么都没发生。点击F5,它按预期工作。
不确定这是否与浏览器行为有关,但如何在参数更改+ Enter后强制页面刷新?
答案 0 :(得分:1)
页面刷新已被回答here.
您可以使用$route.reload();
根据建议here,,您可以在网址输入中点击Enter时尝试侦听路由更改成功:
scope.$on('$routeChangeSuccess')
或scope.$on('$locationChangeSuccess').
答案 1 :(得分:1)
基于莱昂上述建议的完整示例
<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>
基本位置这是注册位置更改侦听器并相应地执行操作。无需路由配置