当我直接在浏览器的 URL 中编辑查询参数时,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
})
]);
最佳答案
看起来您正在使用 ui-router
?如果是这样,您需要告诉它允许这样的 page
参数:
$stateProvider.state('view', {
url: '/view?page',
controller: 'DemoCtrl',
templateUrl: 'views/demo.html'
})
然后在您的 Controller 中,您必须注入(inject) $stateParams
然后您可以使用 $stateParams.page
访问页面
关于javascript - 手动编辑 URL 中的 Angular 查询参数然后加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445321/