2014-11-25 5 views
2

여러 개의 선택 입력란을 사용하여 검색했습니다. 이전에 올바르게 처리했다고 생각하지 않습니다. 결과를 다시로드 할 수 있도록 정확하게 처리하는 방법을 알고 싶습니다. 사용자가 검색 양식을 검토 한 후 페이지를 새로 고침합니다.AngularJS에서 양식 및 URL 매개 변수 검색

가 나는 사람들이 클라이언트를 검색하는 데 사용할 수있는 양식을 가지고 내 사용자가 유형, 이름, 계좌 번호

유형로 검색 할 수있는 것은 필수 필드

에게 있습니다 이름계좌 번호은 선택 입력란입니다.

내가 좋아하는 내 경로 뭔가를 구성 할 $routeProvider를 사용할 수 있습니다

.when('/clientSearch/:type/:accountNumber?/:name?', { 

하지만 계좌 번호이름은 둘 중 하나가 전달되고 있는지 나는 구별 할 방법을 선택하는 경우? 일부 양식에는 선택적 숫자/문자열 필드가 여러 개 있습니다. 선호하는 방법이 잘못된오고있다

$location.search({type: type, accountNumber: accountNumber, 'name': name}) 

:

처럼, 나는 URL의 PARAMS을 설정할 수 있습니다 $location.search()를 사용하십니까?

검색 양식을 올바르게 처리하고 페이지를 새로 고치면 동일한 결과를 다시 가져올 수 있습니까?

+2

매개 변수는 쿼리 매개 변수 여야합니다. –

답변

1

일반적으로 쿼리 매개 변수를 사용합니다. https://docs.angularjs.org/api/ng/service/$location

를 참조하십시오 그래서 같이 사용

:

// http://example.com/#/some/path?foo=bar&baz=xoxo 

// To get: 
$location.search() // => {foo: 'bar', baz: 'xoxo'} 

// To set: 
$location.search('foo', 'yipee') // => {foo: 'yipee', baz: 'xoxo'} 

을 질문 : 각도에서 그들은 search PARAMS라고

이 잘못에서 오는 선호되는 방법이다

?

기본 방법은 사용하는 것이 확실히 질의/검색 PARAMS이

제대로 검색 양식을 처리하고 동일한 결과 페이지가 새로 고쳐 경우 다시 인출 할 수 있도록하려면 어떻게해야

?

컨트롤러에서 필요한 것을 정의하고 매개 변수를 정의하십시오. 보기에 사용할 수있는 매개 변수가 필요하면 다음과 같이 할 수 있습니다.

$scope.searchParams = $location.search() 
+1

'$ location.search()'와 네이티브'Location.searchParams' (a.k.a. "query string params")를 혼동하지 않도록주의하십시오. '$ location.search()'는'Location.hash'_의 _part와 관련이 있습니다.'Location.searchParams'는'Location.search' (쿼리 스트링)의 파싱 된 값입니다. 중요한 부분은 '해시'를 변경해도 쿼리 문자열을 변경하는 것처럼 페이지가 다시로드되지 않는다는 것입니다. – hon2a