我有链接:
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;字符?
答案 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('#', '');
这将从字符串中删除哈希值。