2013-12-12 2 views
0

저는 Meteor and Iron Router를 처음 접했고 '/ users/hippomoe/bookmarks/Kj6ecNk7DeW7PmmGA'와 같은 경로를 만들려고합니다. 여기서 hippomoe는 현재 로그인 한 사용자이고 Kj6ecNk7DeW7PmmGA는 id가됩니다 책갈피의 내가 해봤 것들 중 일부는 사용자 이름Iron Router로 현재 사용자를 포함하는 경로를 정의하는 방법은 무엇입니까?

bookmark: function() { 
    return { 
     _id: this._id, 
     user: Meteor.user().username 
    }; 
} 

를 제공 할 것 핸들 도우미를 추가 할 수 있었고, 또한 정의 사용자 시도 : Meteor.user()는 RouteController 정의 내에서 데이터 컨텍스트에서 사용자 이름을.. 두 경우 모두 다음 오류가 발생합니다. "누락 된 매개 변수가있는 Route.prototype.resolve를 호출했습니다."사용자가 "params에 없습니다"

이 경로 유형을 보여주는 예제를 찾으려고 시도했습니다. 가정하는 것이 일반적이다). StackOverflow에서 이와 관련된 다른 질문은 사용자가 특정 문서와 관련이 있고 현재 로그인 한 사용자가 아닌 것입니다.

나는 간단한 것을 놓친 것 같습니다. 누군가 이것을 제공 할 수있는 간단한 예제를 제공 할 수 있습니까?

답변

1

왜 그런 경로가 필요한지 이해하는 데 어려움이 있습니다. 로그인 한 사용자의 이름을 이미 알고 있다면 경로에서 다시 한 번 사용해야 할 이유가 무엇입니까? 아니면 서버 측을 의미합니까? 이 경우 경로를 제시하십시오.

Router.map(function() { 
    this.route('postShow', { 
    path: '/users/:ignoreme/bookmarks/_id', 
    data: function() { 
     var params = this.params; 
     var user = Meteor.user().username; 
     if (user == params.ignoreme) { 
      ... 
     } else { 
      return "something went wrong"; 
     } 
    } 
    }); 
}); 

이 원하는 URL 패턴을 허용하는 단지이지만, 그냥 URL/사용자/책갈피를 사용하지 왜 다시, 나는 볼 수 없습니다 :

그렇지 않으면

이 작동하지 않습니다 Meteor.user()에 의존하는 논리를 변경하십시오. 내가 제대로 pathFor 구문을 지정했을 경우

+0

경로는 '/ 사용자/hippomoe/북마크/_id'I에 유래가와 무슨과 유사한 구조의 아이디어를 가정 그들의 '/ users/1766665/hippomoe'URL 구조를 클릭하여 상단의 평판/배지 아이콘을 클릭합니다. URL 디자인에 대한 많은 경험이 없으므로 이러한 유형의 URL 구조를 기반으로 할 수 있으며 질문이 명확하지 않을 수 있습니다. – Derek

+1

URL 디자인과 관련하여 질문은 다른 사람들이 귀하의 북마크를 볼 수 있는지 여부입니다. StackOverflow에는 공개적으로 볼 수있는 프로필 페이지가 있으므로 참조 할 수있는 URL이 필요합니다. 사용자 ID는 실제로 필요한 유일한 부분 ('/ users/1766665 /')이며 사용자가 필요에 따라 사용자 이름을 변경할 수 있기 때문에 좋은 디자인입니다. 앱에서 사용자가 자신의 정보 만 볼 수 있도록 허용 한 경우 URL에 ID가 필요하지 않습니다. – alanning

+0

@alanning 아이디 대신 url을 사용하면 내가 생각하지 못했던 유연성을 얻을 수 있습니다. 다른 사용자는 사용자의 북마크 페이지에서 공개적으로 공유 된 북마크를 볼 수 있습니다. – Derek

0

내 질문

bookmark: function() { 
    return { 
     _id: this._id, 
     user: Meteor.user().username 
    }; 
} 

에 기록했던 핸들 도우미는 일 것입니다. 내 경로가 다음과 같이 표시되어야합니다.

{{pathFor 'saveBookmark' bookmark}} 

나는 실수로 북마크를 중단했습니다. ':'_id하기 전에,이 시도 :

0

나는 당신이 누락 된 생각

path: '/users/:ignoreme/bookmarks/:_id', 
+0

예, 나는 예제 경로를 잘 작성하지 않았습니다. 나는 특정 경로 예제에 paramterized 버전이 어떻게 나타날지와 구체적인 URL 예제를 섞었다. 내 질문에 예를 바꿨다. 나는 내 길에서 ':'을 잊지 않았다. 그러나 나는 내 HTML에서 pathFor를 정확하게 표현하지 못했습니다. – Derek

관련 문제