program tip

경로를 수행하지 않고 AngularJS에서 쿼리 매개 변수를 어떻게 설정할 수 있습니까?

radiobox 2020. 10. 26. 07:53
반응형

경로를 수행하지 않고 AngularJS에서 쿼리 매개 변수를 어떻게 설정할 수 있습니까?


내 Angular 앱을 사용하면 사용자가 항목을로드 할 수 있으며,이 경우 항목 ID가 포함 된 쿼리 문자열을 설정하여 사용자가 페이지를 새로 고치거나 연결하려는 경우 URL이 이미 set (ID가 $ routeParams에있는 경우 항목을로드하는 코드가 이미 있습니다).

경로를 유발하지 않고 쿼리 매개 변수를 어떻게 설정할 수 있습니까? 경로가 발생하면 페이지에 재설정되는 다른 항목 (모든 데이터를 다시로드해야하는 플러그인 포함)이 있으므로 쿼리 매개 변수 만 변경하는 것이 중요합니다.

요컨대, 항목 123을로드 할 때 URL이 다음과 같이 변경 되기만하면됩니다.

www.myurl.com/#/Items

에:

www.myurl.com/#/Items?id=123

라우팅이 발생하지 않습니다.

이를 수행하는 가장 좋은 방법은 무엇입니까?


당신에 $ routeProvider의 구성 집합 reloadOnSearchfalse로 :

$routeProvider
  .when('/items', {
    controller: 'ItemsCtrl',
    templateUrl: '/templates/items',
    reloadOnSearch: false
  },
  ...
);

컨트롤러 $location.search()에서 id매개 변수 를 설정하는 데 사용하십시오 .

$location.search('id', 123);

참고 URL : https://stackoverflow.com/questions/17513093/how-can-i-set-a-query-parameter-in-angularjs-without-doing-a-route

반응형