2014-10-06 1 views
0

У меня есть шаблон Метеор в HTML-файле:Как изменить отображаемый шаблон в Meteor?

<template name='main'> </template>

Я вынес его с помощью утюга маршрутизатора:

Router.route('/', function() { this.render('main'); });

Теперь я хочу, чтобы сделать еще один шаблон, чтобы заменить «главный» шаблон , Как это сделать?

+0

Если речь идет о железе: маршрутизатор вы, вероятно, следует пометить его как таковой, чтобы избежать путаницы. У вас есть больше кода, который вы можете показать, было бы меньше работы, чтобы ответить на вопрос. –

+0

@BjornTipling спасибо, я исправил ответ. –

+0

Я предполагаю, что вы хотите заменить этот шаблон в результате определенного действия пользователя. Что бы это было? –

ответ

1

Очевидно, что вы не хотите другого маршрута?

Если нет, вы можете использовать реактивный var в маршрутизаторе. Когда вы измените переменную, она снова запустится и отобразит другой шаблон. См http://eventedmind.github.io/iron-router/#hooks

var OnBeforeActions; 

OnBeforeActions = { 
    whichMain: function() { 
     if (reactiveVar) { 
     this.render('otherMain'); 
     } 
     else 
     this.next() ; 
    } 
}; 

Router.onBeforeAction(OnBeforeActions.whichMain, { 
    only: ['Main'] 
}); 

В качестве альтернативы использовать динамический шаблон внутри вашего основного маршрутизатора.

https://www.discovermeteor.com/blog/blaze-dynamic-template-includes/

+0

Спасибо! Не могли бы вы показать, как использовать реактивный var в маршрутизаторе? Я думаю, что это то, что мне нужно, но я не понимаю, как его реализовать. Мне не нужен другой маршрут в этом случае из-за логики приложения. –

+0

, пожалуйста, посмотрите: http://eventedmind.github.io/iron-router/#hooks Где Meteor.user - это реактивный var, который заставляет его повторять. У меня нет времени на создание примера - надеюсь, завтра. –

+0

Я попробовал добавить пример с телефона - надеюсь, что все в порядке –