Ellis Whitehead
그는 물었다 8년 전
311

39 의 what& 가장 간단한 방법으로 쿼리하지 읽을 수 있는 매개변수입니다 앙굴라이스?

D # 39 와 같은 값을 사용하여 매개변수입니다 앙굴라이스 쿼리하지 uirl i& 볼 수 있습니다. # 39 m 액세스하면 i&, HTML 에서 다음 URL:

'밥' 대상 = http://127.0.0.1:8080/test.html?

예상대로 ',', '는' &quot 로카션.시치? target = bob&quot. , 대상 # 39 의 값을 액세스하면 I& 다양한 예를 찾을 수 있지만, ve, 그들 중 아무도 1.0.0rc10. 앙굴라이스 작업하십시오 웹에서 나열되었습니다. 특히 다음은 모두 '정의되지 않은':

$ 로카션.시치스타르제 '-' [# 39, & # 39, target&] '-' $ 로카션.시치

  • [# 39, & # 39, target&] '' $ 로카션.시치 ()

무엇인지 아는 사람 작동합니까? (I& # 39 m $ 위치 매개 변수로 사용하는 ',' 내 컨트롤러)

- 업데이트:

39 i& 아래에 있지만, 솔루션, ve 게시하기를 I& # 39 m not 완전히 만족할 수 있습니다.

설명서 dell. [개발자 정보안내자: 각 서비스: '$ $ 를 사용하여 위치] [1] 에서는 다음과 같은 위치에 대한':

&gt. $ 위치를 사용해야 하는 때? &gt. &gt. 현재 응용 프로그램을 언제든지 대응할 필요가 변화가 &gt. 현재 uirl 브라우저에 url 이나 스케쳐내 변경하십시오.

내, 외부의 웹 페이지를 열 수 있는 내 페이지는 책정안 쿼리하지 매개변수입니다 도왔으매 I& # 39 m not &quot 변화가 반응을 현재 URL";; 자체는. 그래서 아마도 isn& 위치 ',' $ # 39 는 작업에 대한 올바른 도구 (my answer the ugly) 에 대한 자세한 내용은 아래 참조). 이에 따라 이번 우승으로 변경일 i& # 39 의 질문에, ve, $ 위치 매개 변수를 사용하여 &quot 앙굴라이스 &quot 쿼리하지 읽는 방법,? # 39 의 What& &quot 수 있는 가장 간단한, 읽는 방법은 쿼리하지 매개변수입니다 &quot 앙굴라이스?;). 분명히 javascript 를 사용할 수 있지만, 그냥 내가 분석할 수 있는 무언가를 위해 가는 것 '과' 로카션.시치 정규식이 그러하매 기본 정말 내 기분을 상하게 프로그래머용 감성.

그래서: 사용 방법은 '나보다 더 좋은 위치에 있는지, 아니면 내 대답은' $ 좁히어 간결한 대체?

[1]: $ 위치 (http://docs.angularjs.org/guide/)

rob
그는 7년 전 댓글을 달았습니다
1

39 shouldn& [# 39, & # 39 target&;] $ 로카션.시치 (), t 작동합니까?

Daniel F
그는 5년 전 댓글을 달았습니다
0

이후 이 작동하지 않으면 해시라고 없으므로 패스. '밥', '#' http://127.0.0.1:8080/test.html #? target = 노력할 것을 전에 '?'. '는' $ 위치에 있는 두 번째 수준의 경로설정을 메서드로부터 서버에 보낼 수 없습니다.

krispy
그는 4년 전 댓글을 달았습니다
1

39, re 모두 그러겄지 you& @danielf @rob, [# 39, & # 39, target&] '' $ 로카션.시치 () 는 '$ (true)' 라는 최신 브라우저 후 locationProvider.html5Mode 왔다.

답변 11 개

[$ 라우스파르엄스] 투입할 수 있습니다 (https://docs.angularjs.org/api/ngRoute/service/ $ 라우스파르엄스) (单捞磐啊 [네그로티] (https://docs.angularjs.org/api/ngRoute)) 를 컨트롤러입니다. 예를 들어, s here& # 39 의 문서:

// Given:
// URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
// Route: /Chapter/:chapterId/Section/:sectionId
//
// Then
$routeParams ==> {chapterId:1, sectionId:2, search:'moby'}

편집: [$ 장소] 쿼리하지 설정하고 있는 매개변수는 볼 수도 있습니다 (https://docs.angularjs.org/api/ng/service/) 는 $ 위치), 특히 검색 서비스 (사용할 수 있는 'ng') '' 방법: [$ 로카션.시치 ()] (https://docs.angularjs.org/api/ng/service/ # $ 위치를 시치니).

이후 라우스파르엄스 $ # 39 의 초기 로드 controller& 유용한 줄일 수 있습니다. 언제든지 () '' $ 로카션.시치 부를 수 있다.

KMJungersen
Ellis Whitehead
그는 8년 전 댓글을 달았습니다
1

이 제안으로 및 링크 주셔서 감사합니다! 또한 i read the 페이지에서든 셋업하기 apc® 샘플링합니다 했다. 그러나 외곽진입 won& # 39, t, t want to use for me, 정말 제대로 작동하지 않기 때문에 don& 경로설정을 # 39 이 경우. 하지만 이는 도움됐네 추천 및 I& # 39, ll 업보테 내가 한 번 충분히 스택 오버플로 담당자용.

Martín Coll
그는 7년 전 댓글을 달았습니다
1

& # 39 더 정확한 답이 @pkozlowski.opensource 이 상황에서 내가 이렇게 말할 수 없다.

Andrew Joslin
그는 7년 전 댓글을 달았습니다
2

꼭 그런 것만은 아닙니다. 매개 변수 $ 라우스파르엄스 객체에는 쿼리하지 함께 포함되어 있는 일반 라우트를 매개변수입니다. 그들 / set them with $ 로카션.시치 () 및 읽을 수 있습니다. # 39 에 추가 해답이야 i& 합시다.

Steven Pena
그는 7년 전 댓글을 달았습니다
5

야쿠프 말이 맞아. 이들은 전혀 다른 문제입니다. &Quot 사용할 때 search"; 각, it 에 대한 질의를 첨부됩니다 해시보다 (end of the uirl). 이 RFC 사양명세 격차가 있는 상태가 아닌 덮어쓰기/추가) 이 해시라고 쿼리하지 params prepend 합니다. 따라서 &quot search"; 는 각도 및 해석 chunghwa 불과한 것으로 추정하는 것이다. 이 때문에 HTML5 모드를 사용할 수 있기 때문에 디렉토리에만 솔루션에 대한 모든 요청을 한 페이지 위에 틀렸다니까 위임 (서버 수준에서) 실제 관계없이 uri 입니다.

windmaomao
그는 5년 전 댓글을 달았습니다
2

이 사용할 경우에만 에서 라우트를 앙굴라이스!

luke
그는 4년 전 댓글을 달았습니다
0

이 경우, 각 라우터가 isn& # 39, t 후하라 확인할 사용하고 있습니다. 저의 경우는 '' 즉 '$ $ 국가프로비더 사용하고 싶다 내 컨트롤러입니다 내려받습니다 uirl params 스테파람스' 사용

39, ve 관리됨 작업할 수 있는 좋은 you& 이해했소 작업하십시오 해시뱅 (hashbang) 를 만들 수 있지만 이 또한 html5 모드 모드.

간단히 사용할 수 있습니다.

$location.search().target

39, & # 39 를 액세스하려면 target&. 검색 매개 변수.

여기에 대한 참조입니다 작업 이스피들: //jsfiddle.net/phnlb/7/ http://web.archive.org/web/20130317065234/http

<! - begin 스니핏: js 숨기십시오: &gt 거짓값 -;

var myApp = angular.module('myApp', []);

function MyCtrl($scope, $location) {

    $scope.location = $location;
    $scope.$watch('location.search()', function() {
        $scope.target = ($location.search()).target;
    }, true);

    $scope.changeTarget = function(name) {
        $location.search('target', name);
    }
}

<div ng-controller="MyCtrl">

    <a href="#!/test/?target=Bob">Bob</a>
    <a href="#!/test/?target=Paul">Paul</a>

    <hr/>    
    URL 'target' param getter: {{target}}<br>
    Full url: {{location.absUrl()}}
    <hr/>

    <button ng-click="changeTarget('Pawel')">target=Pawel</button>

</div>

끝 - &lt 스니핏 >;!

JDB
Magne
그는 6년 전 댓글을 달았습니다
2

괄호 () 만 달러 (약 필요하신데요 로카션.시치?

nandin
그는 6년 전 댓글을 달았습니다
2

@Magne: 예, 괄호가 필요한 $ $ 위치를 로카션.시치 방법입니다 https://docs.angularjs.org/api/ng/service/

Sebastian
그는 6년 전 댓글을 달았습니다
4

39 don& (true) '다음' t forget HTML5Mode 사용하지 않으면, 그 후 사용할 수 있는 # # 만 params 추가되지 url / 또는 / 처음부터.

Dan Tao
그는 6년 전 댓글을 달았습니다
21

@nandin: '할 필요가 없는 아니요인 약 $ 로카션.시치 괄호 ()'. # 39 m 이 대답을 하면 왜 그들을 저기예요 i& 확실하지 않다.

Ian Lewis
그는 6년 전 댓글을 달았습니다
0

39, 괄호 shouldn& @nandin 필요 없다. 이 방법은 객체를 반품해야 호출하십시오 joyon. 구문 는 해당 객체를. 수 있을 정도로 fluent 인터페이스입니다.

K. Carpenter
그는 6년 전 댓글을 달았습니다
9

I feel like @nandin 오해를 받고 있는 &quot 필요하신데요 parentheses"; 질문이예요 , 할 필요가 있습니다 서피스뿐 아니라 주변에 괄호 검색 후 수준들과 전체를 '$ 로카션.시치 ()'.

Nate Barbettini
그는 6년 전 댓글을 달았습니다
0

@K.Carpenter 공감한다. 제가 이 질문에 대한 대답은 수리입니다 편집됩니다 구문. (그러니까말이야 it& # 39 의 늙은 하나, 그러나 it& # 39 의 좋은 참조)

K. Carpenter
그는 6년 전 댓글을 달았습니다
0

감사합니다! 그래, 이 질문 / 답변 너무 많은 사람들이 볼 때, 많은 수의 업보테스 생각했어요.

Uli Köhler
그는 5년 전 댓글을 달았습니다
0

현재 이스피들 https://partner. doesn& @pkozlowski.opensource # 39, 빗나갔다. 아직 보관합니까 모든 기회를 통해 소스 코드를?

csilk
그는 5년 전 댓글을 달았습니다
0

39 의 아래 코드를 사용할 수 있습니다, 246 @ulik& 하러 ellis-whitehead& 같아야 한다.

Cobus Kruger
그는 5년 전 댓글을 달았습니다
0

하지만, 조금 끄기도구 항목를 I& # 39 m 상행담관염이라고 기뻐하시도다 이스피들 대한 링크가 보려면 archive.org

이 질문에 대한 답을 전달자로써 부분 내 스스로 작동하는 샘플링합니다 HTML5 브라우저:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
  <script src="http://code.angularjs.org/1.0.0rc10/angular-1.0.0rc10.js"></script>
  <script>
    angular.module('myApp', [], function($locationProvider) {
      $locationProvider.html5Mode(true);
    });
    function QueryCntl($scope, $location) {
      $scope.target = $location.search()['target'];
    }
  </script>
</head>
<body ng-controller="QueryCntl">

Target: {{target}}<br/>

</body>
</html>

중요한 것은 '$ locationProvider.html5Mode 호출하십시오 (true),' 으로 수행되 명이다. 이제 열 때 대상 = 밥 '.' 는 http://127.0.0.1:8080/test.html? # 39 m, 행복하지 i& 사실에 관한 # 39, t, but I 이 브라우저를 사용할 수 있는 it won& tfsnap 작업하십시오 외곽진입 겁니다.

할 수 있는 대안이 될 수 있다 (true) '' 이전 버전의 브라우저와 작동합니까 드롭합니다 html5mode 전화 및 아래 주소로 hash+slash 사용하십시오.

'밥' 대상 = http://127.0.0.1:8080/test.html # /?

관련 문서는 dell. [개발자 정보안내자: 각 서비스: $ 사용하여 위치] [1] (게 내 구글 검색, didn& # 39 이 찾을 수 없다.).

[1]: $ 위치 (https://docs.angularjs.org/guide/)

martin
sthomps
그는 7년 전 댓글을 달았습니다
0

이해해주셔서 감사합니다 # 39, ve been i& 머리카락을 잡아 아웃해야 params 쿼리하지 읽어들입니다 위해 노력하고 있다. # 39, & # 39 undefined& 가져오는 지켰다. 위에서 언급한 때. Html5 협력했습니다 설정 모드.

Jago
그는 7년 전 댓글을 달았습니다
0

39, '속성' 아니다 'ng 컨트롤러거 shouldn& &lt body&gt', ',' 로 설정해야 미야프?

dae721
그는 5년 전 댓글을 달았습니다
4

시작으로 html5Mode 사용하기 위해, 각 1.3 모양을 추가하거나, 베이스, href = &quot /&quot '&lt 수 있어야 합니다. ',' 태그 또는 추가 /&gt 레키르바제: 또 다른 예를 매개변수입니다 거짓값 '를 불러 html5Mode. [세부내용에서 여기서요] (https://docs.angularjs.org/error/ / 노바제 $ 위치)

두 가지 방법을 통해 수행할 수 있습니다.

  1. '$ 라우스파르엄스' 사용

가장 적절한 해결책은 '$ 라우스파르엄스' 를 사용하여 권장됨 컨트롤러입니다. 필요합니다 '' 모듈에서는 네그로티 설치할 수 있다.

   function MyController($scope, $routeParams) {
      // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
      // Route: /Chapter/:chapterId/Section/:sectionId
      // $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}
      var search = $routeParams.search;
  }

  1. '$ 로카션.시치 사용하여 ()'.

여기에 단서 조항 있습니다. 정보기술 (it) 에서만 작동하며 html5 모드. 기본적으로 사용하지 않는 작동하지 않기 때문에 URL 에 대한 해시보다 ('#') ',' = abc&amp param2 = 소 소 데프 param1 항목이없습니다 http://localhost/test?

/ '작업' 은 url 을 추가하여 만들 수 있습니다. '정의' =, = abc&amp param2 param1 http://localhost/test # /?

다음과 같은 개체를 반환되기를 로카션.시치 () '' $

{
  param1: 'abc',
  param2: 'def'
}

Fizer Khan

html5 에 대해서만 사용할 수 있는 유일한 모드 () 는 $ 로카션.시치 켜졌음 관련 브라우저.

이렇게 하면 작동합니까 항상:

$ 빈다우드로카션.시치

단순히 서머리즈.

App 의 경우 외부 링크를 로드되는 URL 로 변경되어 각 습관 탐지합니다 다음 () 이 빈 객체에는 제공하십시오 $ 로이스션.시치 것이다. 이를 해결하기 위해서는 다음과 같은 설정해야 할 수 있는 애플리케이션 구성 (아프자이스)

.config(['$routeProvider', '$locationProvider', function ($routeProvider,     $locationProvider) 
{
   $routeProvider
      .when('/', {
         templateUrl: 'views/main.html',
         controller: 'MainCtrl'
      })
      .otherwise({
         redirectTo: '/'
      });

      $locationProvider.html5Mode(true);
 }]);

Sumurai8
mikeborgh
그는 5년 전 댓글을 달았습니다
1

맞습니다. 이는 통증 com/go/downloads_kr. 의견 주셔서 감사합니다.

Just a precision 을 엘리스 Whitehead& # 39 의 그 답이 있다. # 39, t (true) ',' $ locationProvider.html5Mode won& 작동합니까 응용 프로그램의 기본 url 을 통해 새로운 버전의 앙굴라이스 지정하지 않고,, '또는' &lt 기본 href = &quot &quot &gt 태그 '를' 거짓 '설정' 레키르바제 매개변수입니다

[&Solarisdvd doc] (https://docs.angularjs.org/error/ $ 위치 / 노바제):

&gt 구성할 경우 $ 위치를 html5Mode (흐리스토리오푸쉬국가), 사용할 수 있는 기본 응용 프로그램의 기본 URL 이 &lt 지정해야 합니다,, href = &quot &quot &gt. 정의를 위해 필요한 것은 기본 태그 태그 또는 구성할 수 있는 개체 레키르바제 거짓값 전달하여 로카시옹프로비더 $ $ locationprovider.html5mode ():

$locationProvider.html5Mode({
  enabled: true,
  requireBase: false
});

내가 한 것으로 인해 많은 hba1-spa HTML5Mode 404 오류 문제, 이 경우 $ 로카션.시치 작업하십시오 할 필요는 없습니다. 저의 경우는 내가 내 사이트 url 을 캡처하려면 쿼리 문자열 매개변수입니다 않했노라 관계없이 사용자가 &quot page"; 처음에는 https://partner. microsoft. 수 있으며, 그 후에는 로그인하십시오 해당 페이지를 전송할 수 있습니다. 그래서 뭐 그냥 그런 걸 파피룬 캡처하기 있는 모든

$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
    if (fromState.name === "") {
        e.preventDefault();
        $rootScope.initialPage = toState.name;
        $rootScope.initialParams = toParams;
        return;
    }
    if ($location.search().hasOwnProperty('role')) {
        $rootScope.roleParameter = $location.search()['role'];
    }
    ...
}

그러면 나중에 내가 말할 수 있는 로그인 후 국가스고 $ ($ 루츠코프스니시알페이지, $ 루츠코프스니시알파람스)

가다가 이 도움이 될 수 있습니다

39 의 what& 가장 간단한 방법으로 쿼리하지 읽을 수 있는 매개변수입니다 앙굴라이스

// Given:
// URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
// Route: /Chapter/:chapterId/Section/:sectionId
//
// Then
$routeParams ==> {chapterId:1, sectionId:2, search:'moby'}

<!DOCTYPE html>
<html ng-app="myApp">
<head>
  <script src="http://code.angularjs.org/1.0.0rc10/angular-1.0.0rc10.js"></script>
  <script>
    angular.module('myApp', [], function($locationProvider) {
      $locationProvider.html5Mode(true);
    });
    function QueryCntl($scope, $location) {
      $scope.target = $location.search()['target'];
    }
  </script>
</head>
<body ng-controller="QueryCntl">

Target: {{target}}<br/>

</body>
</html>

($location.search()).target

$ $ $ 세르히오유르파람터 위치를 사용할 수도 있습니다.

kumarharsh
그는 7년 전 댓글을 달았습니다
18

'검색' 는 내부 변수 $ $ 를 사용하지 않는 이런 좋은 아이디어입니다.

하지만 난 조금 늦게 it& # 39 의 your problem was your uirl. 대신 경우

http://127.0.0.1:8080/test.html?target=bob

했습니다

http://127.0.0.1:8080/test.html#/?target=bob

39 m pretty 합니다, i& 협력했습니다 했을 것 "이라고 말했다. 각 정말 까다로운 고구려사에 관한 # /

LocalPCGuy
그는 4년 전 댓글을 달았습니다
0

그것은 오직 구현해줍니다 않을 경우 HTML5 모드. # / 그곳에 url 이 각 것만은 아니다.

nuander
그는 3년 전 댓글을 달았습니다
0

이 경우 hba1-spa 구축하고 있다. # 내 url 을 모두 가지고 있다. 및 HTML5Mode 고말은 1) 과 2 의 404 페이지 새로 고침) 직접판매용 won& url # 39, 빗나갔다. 같다 높은 가격을 내야 한다.