javascript - 手动编辑 URL 中的 Angular 查询参数然后加载页面

标签 javascript angularjs

当我直接在浏览器的 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/

相关文章:

javascript - 之间的正则表达式匹配文本

javascript - Angularjs:如何在惰性模式下加载模型

javascript - AngularJS 指令 : template with scope value (ng-bind-html)

javascript - 这段代码有内存泄漏吗?如果是这样,我该如何删除它?

javascript - 我在从端到 Web api 的发送时间跨度上遇到问题

javascript - jquery slider ,加宽点击区域?

javascript - Laravel 如何使用 Angular 检索带有 user_id 的名称?

angularjs - 在提交数据库之前存储数据,等待管理员批准

javascript - 模拟连接错误

javascript - 当文件内容发生变化时,使用node.js将更新的内容发送给用户