当我在浏览器的网址中直接编辑查询参数时,Angular没有响应。例如,
更改:
/view?page=1
要:
/view?page=2
然后按' ENTER'在浏览器中没有做任何事情。什么都没发生。我希望页面加载新的查询参数。 Angularjs中的某些东西必须阻止它吗?
预期的行为是这样的:
变化:
https://stackoverflow.com/questions/tagged/angularjs?page=1
要:
https://stackoverflow.com/questions/tagged/angularjs?page=2
在浏览器中按ENTER键,浏览器将加载第2页的数据。
我不认为这是我的路线:
$stateProvider.state('view', {
url: '/view',
controller: 'DemoCtrl',
templateUrl: 'views/demo.html'
})
如何允许用户手动编辑查询参数并将其加载到浏览器中?
修改
// route
$stateProvider.state('view', {
url: '/view?page',
controller: 'DemoCtrl',
templateUrl: 'views/demo.html'
})
// controller
angular.controller("DemoCtrl", ['$scope', '$stateParams',
function($scope, $stateParams) {
// stuff
})
]);
答案 0 :(得分:0)
看起来你正在使用ui-router
?如果是这样,您需要告诉它允许page
参数,如下所示:
$stateProvider.state('view', {
url: '/view?page',
controller: 'DemoCtrl',
templateUrl: 'views/demo.html'
})
然后在您的控制器中,您必须注入$stateParams
,然后您可以使用$stateParams.page
答案 1 :(得分:-1)
看看ngRoute https://docs.angularjs.org/api/ngRoute/service/ $路线