Angularjs로 해시 후 URL 매개 변수를 구문 분석하려면 어떻게 해야 합니까?
URL이 다음과 같은 Foursquare에서 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
}
}
네이티브 앵귤러를 사용해서는 구할 방법이 없다는 뜻인가요?JS 함수가 해시의 원인입니까?
업데이트:
내 컨트롤러는 다음과 같습니다.
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
그래서 만약 당신의 url이 다음과 같다면.
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
사용하다$location.search()
//e.g. url https://www.example.com/#!?name=123
var s = $location.search();
// {name: '123'}
http://docs.angularjs.org/api/ng.$location
검색:
매개 변수 없이 호출하면 현재 URL의 검색 부분(객체)을 반환합니다.
"원어민 각선미" 방법은 모르지만, 당신은 해시에 접근할 수 있습니다.location.hash
현형으로이상적이지는 않겠지만, 가능합니다.
이를 위한 Angular JS의 직접적인 지원은 사실 없습니다.안 써요.ngRoute
, 왜냐하면 그것은 이미 그것을 기대할지도 모르기 때문입니다.#
딴 데서당신의 문제에 대한 간단한 해결책은location.hash
그리고.substring()
함수:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="http://code.angularjs.org/1.2.6/angular.js"></script>
<link href="style.css" rel="stylesheet" />
<script>
angular.module('app', [])
.controller('AppCtrl', ['$scope', '$window', function($scope, $window) {
$scope.accessToken = $window.location.hash.substring(14);
}]);
</script>
</head>
<body ng-controller="AppCtrl">
<h1>Access Token</h1>
<p>{{accessToken}}</p>
</body>
</html>
언급URL : https://stackoverflow.com/questions/20878335/how-do-i-parse-url-params-after-a-hash-with-angularjs
'source' 카테고리의 다른 글
각 HTML 페이지(예: 각 ng-class)에서 Typescript 열거형을 사용하는 올바른 방법 (0) | 2023.11.07 |
---|---|
Oracle sqdeveloper - 명령줄에서 DB를 연결하는 방법 (0) | 2023.11.07 |
Python에서 문자열이 비어 있지 않은 경우 여러 개의 문자열에 가입 (0) | 2023.11.07 |
플라스크/Ajax HTTP 연결을 유지하는 방법? (0) | 2023.11.07 |
각 12개의 'ng serve'는 거의 프로덕션 빌드와 같이 앱을 느리게 만듭니다. (0) | 2023.11.07 |