기본적으로 검색 결과가있는 테이블 인 응용 프로그램에서 각도를 사용하고 있습니다. 이 테이블에 액세스 http://myapp/?client=clientName
각도 컨트롤러가 행 세부 사항 (또한 부트 스트랩-UI와 각도 기반) 모달 대화 상자를 열기위한, 무엇보다도, 테이블에 대해 인스턴스화과 같은 URL을 통해 달성 될 수있다.
이러한 행 세부 정보는 두 컨트롤러에 대한 몇 가지 공통 기능이있는 서비스를 통해 가져옵니다. 하나는 테이블 용이고 다른 하나는 모달 용입니다.
지금,이 서비스 내에서, 나는 다음 코드를 검색 할 수 있습니다
service.fetchRelatedElements = function(element, cb) {
var url = '/search.json?results=20&type='+element.type;
if ($location.search()['client']) {
url += '&client=' + $location.search('client');
}
return doFetch(url, cb); // actual server json GET
};
목표는 테이블이 이미 필터로 설정이 특정 client
매개 변수가 있는지 알고있다.
이 호출의 시작 부분에 중단 점을 넣으면 $location.absUrl()
이 현재 브라우저 URL (내 경우에는 내가 관심있는 client
매개 변수가 있음)을 반환한다는 것을 알 수 있습니다.
그러나 $location.search()
은 빈 개체를 반환합니다.
서비스 내 $ 위치 서비스에 기본값 (즉, .config()
호출로 구성하지 않음)을 주입하고 있습니다. 문서로 그리고는 말한다 :
은 $ 위치 서비스합니다 (에서는 window.location에 기반) 브라우저의 주소 표시 줄에 URL을 구문 분석하고 응용 프로그램에 사용할 수있는 URL을합니다.
나는 뭔가가 부족합니까? 이 시점에서 URL을 파싱해야하지 않습니까?
감사합니다.
UPDATE : 나는 그것이 작동되도록 관리했습니다. 문제는 내가 모든 서비스에서 구성하지 않고 있다는 것입니다. 나는 그렇게 했으므로 디폴트를 취할 것이라고 생각했기 때문에 그렇게했다. 그러나 그것은 그것이 작동하는 방식이 아닌 것처럼 보인다.
$ location.absUrl()의 출력을 공유 할 수 있습니까? 이것은 정규 표현식 문제와 같은 냄새를 풍깁니다. – Jmr
예! 'http : // localhost : 3000/results? utf8 = % E2 % 9C % 93 & client = mond & type = & submittedLowerBound = & submittedUpperBound = & commit = Filter'입니다. 백엔드의 레일 앱입니다. – Pipetus
솔루션에 대한 몇 가지 코드를 공유 할 수 있습니까? $ location.search()가 {}을 반환하는 동일한 문제가있는 임 – sthomps