2014-09-20 3 views
1

예를 들어 내 URL은 localhost : 3000/posts/98Xjsd39sdk이고 내 고유 ID는 해당 URL의 마지막 부분입니다. 전달되는 매개 변수를 잡아낼 수있는 방법이 있습니까? Iron Router를 사용하여 데이터 객체를 전달할 수도 있지만이 데이터는 핸들 막대 {{like-this}}가있는 실제 템플릿에 사용되는 것으로 제한됩니다. 이 매개 변수를 잡는 가장 좋은 방법은 무엇입니까, 나는 그것을 잡아서 console.log를 푸는 데 어려움을 겪고 있습니다. 감사!URL 또는 Iron Router에서 _id를 검색하는 가장 좋은 방법

답변

1

에는 그것을 추출 유성의 방법으로 내장 없다, 그러나 당신은 일반 자바 스크립트를 사용할 수 있습니다 : 나는 당신이 그렇게 코멘트 경우를 남겨주세요 달성 하려는지 이해 여부를 내가 정확히 모르겠어요

var parts = location.href.split('/') 
var id = parts.pop() 
1

을 이것은 당신이 원하는 것이 아닙니다.

당신과 같이 와일드 카드 매개 변수를 사용하여 당신에게 경로를 선언 할 수

this.route('post', { 
    path: "/posts/:postId" 
}); 

는 그런 다음 this.params.postId를 통해 postId을 액세서 수 있습니다. 예를 들어 데이터 부분에서와 같이 경로의 어느 곳에서나 this.params.postId을 수행 할 수 있습니다.

은 템플릿 '포스트'에 ID를 사용할 수 있도록하기 위해 단지 수행 (템플릿이 다른 뭔가를 호출하는 경우, 당신은 물론 경로에서 이름을 변경해야합니다) :

this.route('post', { 
    path: "/posts/:postId", 
    data: function(){ 
     console.log(this.params.postId) 
     return {postId: this.params.postId}; 
    } 
}); 

그럼 그냥 사용 {{postId}}를 템플릿에 추가하십시오.

희망이 도움이됩니다.

+0

이봐 감사합니다! 나는 Iron Router를 사용하여 데이터를 밀어 템플릿에서 사용하는 방법을 알고 있지만 실제로는 배후의 로직에서 사용하려고합니다. 전달 된 데이터가 html 템플릿에서만 사용할 수 있는지 또는 템플릿이 의미가있는 경우 템플릿을 제어하는 ​​javascript 파일에서도 사용할 수 있는지 여부는 알지 못했습니다. Pepe의 답변과 비슷한 것을하지 않고도 데이터를 사용할 수 있습니까? – user3927685

+0

@ user3927685, 당신은'Router.current()'로 현재 경로를 얻을 수 있습니다. 이것은 매개 변수를 포함한 현재 경로에 대한 정보가있는 객체로 평가됩니다 (추측 하건데). 이것으로, 당신은 당신이 원하는 것을하는 커스텀 도우미 함수를 생성 할 수 있어야합니다, 맞습니까? –

+0

이것은 가장 정확한 대답입니다. – dubRun

0
var help = Router.current().params.postId 

템플릿에 게시물의 ID가 표시됩니다. 당신과 같은 경로를 정의한 경우

: 귀하의 답변에 대한

Router.route('/posts/:postId', function() { 
//subscriptions go here 
if (this.ready()) { 
    this.render('postsTemplate'); 
} else { 
    this.render('loadingTemplate'); 
} 
)}; 
관련 문제