2014-10-31 4 views
1

Meteor는 분명히 매우 간단하도록 최선을 다하고 있습니다. 그러나 그것은 상자 구성에서 페이지 라우팅을 포함하지 않습니다. 따라서 철제 라우터를 사용할 수 없다면 (다른 패키지와의 충돌로 인해) 페이지를 변경하기 위해 Blaze.render()와 템플릿을 직접 사용해야합니다.라우터가없는 유성?

나는 이것에 관한 문서를 살펴 봤는데, 그다지 말할 것도없이 매우 단순 해 보이지는 않는다. 그래서 나는 뭔가를 놓치기를 바라고 있습니다. 마치 완료된 후에 파괴해야하는 모든 뷰 객체에 들어 가지 않고 템플릿이 표시되는 것을 제어하는 ​​비교적 간단한 방법이 있습니다.

매우 단순한 제품은 대부분의 다른 API와 비교할 때 사소한 객체 및 기능에 기본 기능이 포함되어있는 것이 이상하게 보입니다. 그러나 초보자가 철제 라우터를 사용한다고 실제로 생각한다면 Meteor의 일부로 시작하지 않는 이유는 무엇입니까?

+0

을, 어떤 패키지는 철이다 : 라우터와 충돌? – stubailo

+0

프레임 워크를 사용하지 않고 리더 보드 예제를 다시 만들어보십시오. 그러면 Meteor로 간단히 수행하는 방법을 알 수 있습니다. –

+0

@stubailo - AmMaps (AmCharts의 매핑 라이브러리). iron-router를 추가 할 수는 있지만 AmMaps는 여전히 작동하지만 Router 객체에 대한 단일 호출을 추가하자마자 오류 메시지없이 중단됩니다. –

답변

1

체크 아웃 Template.dynamic는 : https://docs.meteor.com/#/full/template_dynamic

이것은 당신이 이름으로 템플릿을 포함하도록하고, 도우미에서 이름을 전달합니다.

다른 옵션 대신 라우팅의 세션 변수를 사용하고 {{#if}} 진술하는 것입니다 : 호기심

{{#if firstPage}} 
    {{> firstPageTemplate}} 
{{else}} 
    {{> otherPageTemplate}} 
{{/if}} 
+0

Template.dynamic 기능에 관한 문서는 드물고 혼란스러워 보입니다. 그것은 도우미로 templateName을 정의 할 수 있다고 말합니다. 그러나 Template.Dynamic.helpers()를 수행하거나 글로벌 도우미를 등록해야합니다. 나는 두 번째 방법으로 작품을 썼다면, 매우 직관적 인 B/C가되기를 바랍니다. 나는 전에 그것을 보았지만 Blaze가 그 접근법을 깨뜨렸다 고 생각했습니다. 고마워, stubailo! –

+0

두 번째 접근법은 실제로 라우팅이 가능하기 전에 작성된 많은 Meteor 내부 앱에서 사용되므로 명확하게 작동합니다! 도우미에 관해서는 전역 적으로 또는 Template.dynamic (Template.dynamic은 실제 템플릿을 참조하지 않습니다.)을 호출하는 템플릿에서 도우미를 정의 할 것입니다. #if 또는 #else와 유사합니다. 언어로) – stubailo