2013-06-22 161 views
0

我有一個函數:使用模板助手,使文字反應在流星模板

function Print(string, number) { 

     if (number == 1) { // For descriptions 
      currentdesc = string; 
     } 
     else if (number == 2) { // For the first choice 
      currentchoice1 = string; 
     } 
     else if (number == 3) { // For the second choice 
      currentchoice2 = string; 
     } 
} 

還有一些模板,使用這些值在頁面上顯示出來:

if (Meteor.isClient) { 
      Template.main.desc = currentdesc; 

      Template.below.choice1 = currentchoice1; 

      Template.below.choice2 = currentchoice2; 
} 

和HTML其中一部分是:

<template name="main"> 
    <h2>Current:</h2> 
    {{desc}} 

</template> 

<template name="below"> 
    <h3>Choose:</h3> 
    {{choice1}} 
    <br/> 
    {{choice2}} 
    <br/> 
    <div> 
    <input id="number" type="text" size="40"> 
    <input type="button" class="choose" Value="choice"> 
    </div> 
</template> 

當我第一次調用該函數時,它會顯示我需要的東西。之後,每當我再次調用該函數時,無論我做什麼,頁面上的文本都保持不變。變量currentdesc,currentchoice1currentchoice2按預期相應地發生變化,但模板不更新。

回答

0

使用Session使變量反應:

function Print(string, number) { 

    if (number == 1) { // For descriptions 
     Session.set('currentdesc', string); 
    } 
    else if (number == 2) { // For the first choice 
     Session.set('currentchoice1', string); 
    } 
    else if (number == 3) { // For the second choice 
     Session.set('currentchoice2', string); 
    } 
} 

而且你的模板:

if (Meteor.isClient) { 
     Template.main.desc = function() { 
      return Session.get('currentdesc'); 
     } 
     Template.below.choice1 = function() { 
      return Session.get('currentchoice1'); 
     } 
     Template.below.choice2 = function() { 
      return Session.get('currentchoice2'); 
     } 
} 

也有關於如何使用Session與流星的文檔幾個例子: http://docs.meteor.com/#session

0

我是Meteor的新手,但我認爲你需要設置一個模板助手。

Template.below.helpers ({ 
    choice1: function() { 
    return currentchoice1; 
    } 
}), 

這使選擇1反應。

鮑勃

+0

沒有工作,不幸。 – Euphe

相關問題