【问题标题】:Angular Get Parameter Off URL with Slashes带有斜杠的 Angular 获取参数关闭 URL
【发布时间】:2014-10-15 13:27:14
【问题描述】:

我正在开发一个单页 Angular 应用程序。

应用程序从 URL 中取出一个令牌,然后将其传递给 API。目前我的网址如下所示:

www.example.com/?token=3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

我的代码已经正确使用了角度路由,但我必须像这样从 URL 中获取令牌:

var postToken = $location.search().token;

我在配置上有这个:

 app.config(function($locationProvider, $httpProvider, $routeProvider) {
    $routeProvider
    .when('/token/:token', {
        templateUrl : 'views/select-token.html',
        controller : 'selectHold'
    })
    .when('/purchase-hold/token/:token', {
        templateUrl : 'views/purchase-token.html',
        controller : 'purchaseHold'
    });
});

我希望我的网址看起来像这样:

www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

我需要编写什么代码才能搜索/token/ 并抓取它旁边的数据,而不是?token=

【问题讨论】:

标签: javascript angularjs url routes


【解决方案1】:

你可以在你的控制器中注入 $routeParams 并且它将在其中可用

app.controller('selectToken', function($scope, $routeParams) {
     console.log($routeParams.token);
     // We now have access to the $routeParams here
});

然后 Angular 会用 :token 的 key 填充 $routeParams,key 的 value 将用加载的 URL 的 value 填充。

如果浏览器加载 URL www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95 ,

那么 $routeParams 对象将如下所示:

{ token: '3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95' }

【讨论】:

  • 我试过了,还是不行。在我的 .config 我有 .when('/token/:token', { templateUrl : 'views/select-token.html', controller : 'selectToken' })
  • 我应该把 $routeParams.token 放在哪里?在我的配置或我的控制器中?而且我不必更改两件事……配置和控制器。我不需要更改配置 when 并将 $routeParams 添加到我的控制器吗?
【解决方案2】:

像现在一样构建你的路线

.when('/token/:token', {templateUrl : 'views/select-token.html', controller : 'selectToken' })

然后在您的控制器中注入 $routeParams,您将能够访问您的路由参数

.controller('selectToken', function($scope, $routeParams){
  $scope.token = $routeParams.token
}

【讨论】:

  • 我不得不使用我的 apache 设置的后备来让它工作,但是现在当我有 www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95 我得到一个空白屏幕......我可以看到所有我的代码通过查看源代码
猜你喜欢
  • 2011-09-13
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2012-04-22
  • 2015-03-06
  • 2012-11-16
相关资源
最近更新 更多