javascript从url获取id两个选项。

时间:2016-06-30 10:32:06

标签: javascript angularjs

我有链接:

      https://localhost:44301/.../.../2e8f0070-ff56-4f88-a316-b6d45f67b749/

然后我可以从这个方法获得ID:

    var index = window.location.href.lastIndexOf("/");
            if (index > 0 && index + 1 < window.location.href.length) {
                return window.location.href.substring(index + 1);
            } else {
                return null;
            }

但如果链接是:

    https://localhost:44301/.../.../2e8f0070-ff56-4f88-a316-b6d45f67b749#/

来自AngularJS路由的哈希值。

然后我怎样才能获得没有&#34;#&#34;字符?

2 个答案:

答案 0 :(得分:2)

如果您使用 ui-router ,您的代码应如下所示:

.state('stateName', {
  url: '/object/:id',
  controller: 'ObjectCtrl',
  templateUrl: 'views/object.html'
  ...
});

然后,由于控制器您可以使用$stateParams 来访问该ID值

(() => {
  app.controller('ObjectCtrl', objectCtrl);
  objectCtrl.$inject = ['$scope', '$stateParams'];
  function objectCtrl($scope, $stateParams) {
    let id = $stateParams.id;
    console.log(id); // prints "2e8f0070-ff56-4f88-a316-b6d45f67b749"
  }
})();

答案 1 :(得分:1)

您应该使用replace函数从网址中删除哈希值。

return window.location.href.substring(index + 1).replace('#', '');

这将从字符串中删除哈希值。