에서 URL의 실제 값을 얻기 위해, 내가 좋아하는 경로가 정의한 finderHandler()
에 의해 처리됩니다. 내 finderHandler
에 원본 URL 값을 가져 오려고합니다. 이 경우, 그것은 /admin/finder/1234
입니다. 어떻게 얻을 수 있습니까?어떻게 말할 수 갈림길
2
A
답변
0
CrossroadsJS는 실제로 (window.location의 관점에서) URL을 신경 쓰지 않고 액세스 권한을 제공하지 않습니다. crossroads.parse()
메서드는 임의의 문자열을 받아들이고 일치시킵니다. 문자열은 모든 소스, URL 또는 기타에서 온 것일 수 있습니다.
route.interpolate()
기능을 사용하여 문자열을 리버스 엔지니어링 할 수 있습니다. 이 함수는 명명 된 값의 해시를 가져 와서 경로의 일치 패턴에 정의 된 매개 변수에 매핑합니다. 경로의 핸들러 함수는 일치하는 매개 변수를 전달하므로 해시에 전달하므로 원본 문자열을 다시 가져와야합니다.
예는 여러 경로와 일치하지만 마지막 부분은 캡처하지 않습니다.
var myRoute = crossroads.addRoute('/root/finder/:optional:', finderHandler);
당신은 그들과 같은 핸들러와 문자열 복구 할 수 있어야한다 :
function finderHandler (optionalSegment) {
var urlFragment = myRoute.interpolate({optional: optionalSegment});
console.log(urlFragment);
}
는이 테스트를 읽게을이처럼 다시 작성하는 것은 크로스로드 최종 세그먼트를 캡처하게해야합니까? https://github.com/millermedeiros/crossroads.js/blob/master/dev/tests/spec/signals.spec.js –