流星铁路由器 - 如何等待(使用加载模板)一个Session.get?

时间:2015-01-30 11:24:29

标签: javascript session meteor iron-router

我试图渲染一个' spotresult'带有一些变量的模板(来自Session.get())。 我花了很多时间在上面,但我没有找到答案......你能帮帮我吗?

https://git.geekli.st/balibou/hackaton_volant/tree/master/cerfvolantspatial

非常感谢!

//router.js
Router.configure({
  layoutTemplate: 'layout',
  loadingTemplate: 'loading'
});

Router.route('/', {name: 'spot'});

// 1.Normal rendering
//Router.route('/spotresult',{name: 'spotresult'});

----------------------------------------------- ------------------------------

// 2. First attempt
//Router.route('/spotresult', {
//  name: 'spotresult',
//  action: function () {
//    if (this.ready())
//      this.render();
//    else
//      this.render('loading');
//  }
//});

//3. Second attempt
//var waitingSession = function() {
//  if (!this.ready()) {
//    this.render(this.loadingTemplate);
//  } else {
//    this.next();
//  }
//}
//
//Router.onBeforeAction(waitingSession, {only: 'spotresult'});

布局模板:

<template name="layout">
  <div class="container">
    {{> header}}
  </div>
  <div class="container mainyield">
    {{> yield}}
  </div>
</template>

加载模板:

<template name="loading">
  {{>spinner}}
</template>

现货模板:

<template name="spot">
  <div class="spot">
    {{#if currentUser}}       
      <p class="text-center">Bonjour, bienvenue sur votre profil</p>   
    {{else}}
      <h4 class="text-center">Bonjour, pour connaître la vitesse du vent, remplissez le champs ci-dessous !</h4>
      <form role="form" class="new-spot">
        <div class="form-group">
          <label for="email">Spot :</label>
          <input name="lieu" type="text" class="form-control" id="lieu" placeholder="Entrez un lieu">
        </div>
        <button type="submit" class="btn btn-default">Valider</button>
      </form>   
      {{#if windspeed7}}
        {{>spotresult}}
      {{/if}}  
    {{/if}} 
  </div>
</template>

1 个答案:

答案 0 :(得分:1)

我认为问题出在这里,请替换为此代码。

Template.spot.helpers({
  showSpinner:function(){
    if(Session.get("windspeed7" === ''){
      return true;
    }else{
      return false;         
    }
  }
});

将此助手添加到另一个助手

 {{#if showSpinner}}
   {{else}}
    {{>spinner}}
   {{/if}}

这应该有效