如何使用Angular的ngRoute存储参数?

时间:2016-03-18 00:23:00

标签: angularjs angular-routing ngroute

我正在使用角度ngRoute并且有两页index.html#/pageoneindex.html#/pagetwo。在pageone中,有一个文件夹列表,它们是pagetwo的入口。通过单击其中一个文件夹pageone将文件夹名称作为参数传递给pagetwopagetwo上有一个数据表,等待来自pageone的参数显示相关内容。

我所做的是获取pagetwo控制器中的参数并将查询参数附加到url,这样我在刷新pagetwo时仍然可以获取参数。但似乎这不是一种正确的方法。如果我使用pageonepagetwo重定向到name=1,然后点击浏览器的后退按钮,网址将从index.html#/pagetwo?name=1更改为index.html#/pagetwo,无法获取参数一旦我现在刷新页面。在这种情况下,是否存储了从pageone传递的参数的任何解决方案?

        .when('/pageone', {
            templateUrl: 'pageone.html',
            controller: 'pageoneController',
            reloadOnSearch: false
        })
        .when('/pagetwo', {
            templateUrl: 'pagetwo.html',
            controller: 'pagetwoController',
            reloadOnSearch: false
        })

pagetwoController:

       if(direct from pageone) {
         $scope.name = someService.getName()
         $location.search('name', $scope.name)
       } else {
        //if reload page
         $scope.name = $location.search().name
       }

1 个答案:

答案 0 :(得分:0)

您可以使用:在路线中定义参数,例如:id创建一个名为id的参数变量

    .when('/pageone', {
        templateUrl: 'pageone.html',
        controller: 'pageoneController',
        reloadOnSearch: false
    })
    .when('/pagetwo/:id', { //add the id param here.
        templateUrl: 'pagetwo.html',
        controller: 'pagetwoController',
        reloadOnSearch: false
    })

你的pagetwo网址就像:/pagetwo/1

在您pagetwo的控制器中,您可以通过$routeParams变量获取参数。

有关详细信息,请参阅this