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

How do I store parameters with Angular's ngRoute?

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

我所做的是在 pagetwo 的控制器中获取参数并将查询参数附加到 url 以便我在刷新 pagetwo 时仍然可以获取参数。但这似乎不是正确的方法。如果我用name=1pageone重定向到pagetwo,然后点击浏览器的后退按钮,url会从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
        })

pagetwo控制器:

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

您可以使用 : 在路由中定义参数,例如 :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 的 url 会是这样的:/pagetwo/1

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

有关详细信息,请参阅 this