在URL中手动编辑角度查询参数,然后加载页面

时间:2015-02-11 01:58:30

标签: javascript angularjs

当我在浏览器的网址中直接编辑查询参数时,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
    })
]);

2 个答案:

答案 0 :(得分:0)

看起来你正在使用ui-router?如果是这样,您需要告诉它允许page参数,如下所示:

$stateProvider.state('view', {
    url: '/view?page',
    controller: 'DemoCtrl',
    templateUrl: 'views/demo.html'
})

然后在您的控制器中,您必须注入$stateParams,然后您可以使用$stateParams.page

访问该页面

答案 1 :(得分:-1)