【问题标题】:How do I store parameters with Angular's ngRoute?如何使用 Angular 的 ngRoute 存储参数?
【发布时间】:2016-07-04 14:20:37
【问题描述】:

我正在使用 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
        })

pagetwoController:

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

【问题讨论】:

    标签: angularjs angular-routing ngroute


    【解决方案1】:

    您可以使用: 在路由中定义参数,例如: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

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 2014-10-02
      • 2014-05-23
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 2023-03-29
      相关资源
      最近更新 更多