2014-10-07 1 views
0

Я использую iron: [email protected] с метеорным 9.3.1.Iron Router: Маршруты не работают, если они размещены внутри «if (Meteor.isClient)»

код шаблона:

<head> 
    <title>ironman</title> 
</head> 

<body> 
</body> 

<template name="hello"> 
    <button>Click Me</button> 
    <p>You've pressed the button {{counter}} times.</p> 
</template> 

код Javascript:

if (Meteor.isClient) { 
    // counter starts at 0 
    Session.setDefault("counter", 0); 

    Template.hello.helpers({ 
     counter: function() { 
      return Session.get("counter"); 
     } 
    }); 

    Template.hello.events({ 
     'click button': function() { 
      // increment the counter when button is clicked 
      Session.set("counter", Session.get("counter") + 1); 
     } 
    }); 


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

} 

Маршрут определен выше, не работает. Однако, если я устанавливаю определение маршрута вне if (Meteor.isClient) {, он начинает работать.

Это по дизайну? Пожалуйста, порекомендуйте.

ответ

0

Это по дизайну.

IronRouter позволяет выбрать, где искать маршруты: client или server. По умолчанию все маршруты прикреплены к стороне клиента, но вы можете применить маршрут к серверной стороне:

Router.route('/item', function() { 
    var req = this.request; 
    var res = this.response; 
    res.end('hello from the server\n'); 
}, {where: 'server'}); 

 Смежные вопросы

  • Нет связанных вопросов^_^