当前位置: 首页 > 面试题库 >

如何使用Angularjs解析哈希后的URL参数?

束研
2023-03-14
问题内容

我正在尝试从Foursquare解析URL如下所示的access_token:

https://mywebsite.com/4sqredirect/#access_token=1234567890XXXXX

我试过$ routeParams和$ location,什么也没有返回。只有在尝试$ route之后,我才获得了带有以下属性的对象:

current:  { 
    params:  {  } 
    pathParams:  {  } 
    loadedTemplateUrl: partials/4sqredirect
    locals:  {  } 
    scope:  { 
        this:  { 
            $ref: $["current"]["scope"]
        } 
        route:  { 
            $ref: $
        } 
        location:  {  } 
        token: null
    }
}

这是否意味着无法使用本机AngularJS函数获取该哈希值?

更新:

我的控制器如下所示:

angular.module('myApp')
    .controller('4sqredirectCtrl', function ($scope, $route, $location, $routeParams) {
        $scope.route = $route;
        $scope.location = $location;
        $scope.token = $routeParams.access_token;
    });

我的主要js如下所示:

angular.module('myApp', [
    'ngCookies',
    'ngResource',
    'ngSanitize',
    'ngRoute'
])
.config(function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);

    $routeProvider
    .when('/', {
        templateUrl: 'partials/main',
        controller: 'MainCtrl'
    })
    .when('/4sqredirect/', {
        templateUrl: 'partials/4sqredirect',
        controller: '4sqredirectCtrl'
    })
    .otherwise({
        redirectTo: '/'
    });
});

问题答案:

从角度定位服务
$location.hash()方法返回#after-hash

因此,如果您的网址看起来像

https://mywebsite.com/4sqredirect/#access_token=1234567890XXXXX

然后

$location.hash() 返回 access_token=1234567890XXXXX

您需要将其拆分 split('=')[1]

当您单击然后再返回时,看到此插头4Square``$location.url()

/4sqredirect/#access_token=123456
$location.hash().split('=')[1]

返回 123456



 类似资料:
  • 问题内容: 寻找一种使用JavaScript / JQuery从URL的哈希/片段中将密钥对解析为对象/关联数组的方法 问题答案: 签出:jQuery BBQ jQuery BBQ设计用于解析URL(查询字符串或片段)中的内容,并且进一步简化了基于片段的历史记录。这是Yarin在构建纯js解决方案之前一直在寻找的jQuery插件。具体来说,deparam.fragment()函数可以完成这项工作。

  • 所以我使用gem文件从reddit的首页拉链接。gem函数返回一个哈希,其中包含首页上的所有链接及其所有信息(评论、业力、作者、日期、链接、上升、下降等的#)。下面是包含我首页上第一个链接信息的哈希请求: {"modhash"= 结尾<code>,</code>分隔下一个链接,如下所示: {“种类”= 我基本上需要某种方法来解析这个散列的每个条目,这样我就可以将所有相关的东西存储到一个数组中。实际

  • 问题内容: 使用Angular,如何添加由我的应用程序更新哈希或浏览器从URL栏或后退/前进按钮更新URL时触发的手表? 问题答案: 接受函数作为第一个参数,因此您可以执行以下操作: 但我会建议使用的事件,如为缺省路由器: 或用于ui路由器

  • jQuery获取地址栏url参数 获取url参数内容

  • 问题内容: 我们提供了讲座和章节的列表,用户可以在其中选择和取消选择它们。这两个列表存储在redux存储中。现在,我们希望在url的hash标签中保留选定的演讲段和章节段的表示形式,并且对该URL所做的任何更改也应更改存储(双向同步)。 使用react-router甚至react-router- redux 的最佳解决方案是什么? 我们找不到真正的好例子,其中react路由器仅用于维护url的ha

  • 我们有一个讲座和章节的列表,用户可以在其中选择和取消选择它们。这两个列表存储在redux存储中。现在,我们希望在url的哈希标记中保留所选讲座段塞和章节段塞的表示,对url的任何更改也应该更改存储(双向同步)。 什么是最好的解决方案,使用反应路由器或甚至反应路由器redux? 我们真的找不到一些好的例子,其中react路由器只用于维护url的哈希标记,并且只更新一个组件。