2016-02-26 48 views
0

有一件事我要說的是我新的網絡發展,特別是流星所以任何幫助將不勝感激。流星表模板沒有得到填充

我有一個網頁,我有用戶輸入2個數字,用它們作爲一次通過點擊一個按鈕提交的變量。這2個數字用於計算JS對象中的項目。當我提交數字時,當我檢查控制檯時,對象顯示了所有正確的數字,但是html沒有進入模板。 我有在頁面其他兩個模板和他們工作的罰款。該表也填充在頁面中,但是一旦計算完成就不填寫所需的值。 我已將代碼放在代碼筆中。這是link。以下是js代碼。我也在codepen中包含了HTML。

Template.input_fields.events({ 
    'click #inputForm': function (e) { 


     console.log("clicked"); 
     // create variables for user FTP and LTHR values 
     var ftp_value = $("#ftp").val(); 
     var lthr_value = $("#lthr").val(); 

     // Calculation of training zones for power and heart rate. 
     var calculations = [ 

      {end_1: ftp_value * .56}, 
      {end_2: ftp_value * .75}, 
      {end_3: lthr_value * .80}, 
      {end_4: lthr_value * .90}, 
      {tempo_1: ftp_value * .76}, 
      {tempo_2: ftp_value * .85}, 
      {tempo_3: lthr_value * .91}, 
      {tempo_4: lthr_value * .95}, 
      {ss_1: ftp_value * .86}, 
      {ss_2: ftp_value * .95}, 
      {ss_3: lthr_value * .96}, 
      {ss_4: lthr_value * .99}, 
      {threshold_1: ftp_value * .96}, 
      {threshold_2: ftp_value * 1.05}, 
      {threshold_3: lthr_value * 1}, 
      {threshold_4: lthr_value * 1.02}, 
      {vo2_1: ftp_value * 1.06}, 
      {vo2_2: ftp_value * 1.20}, 
      {vo2_3: lthr_value * 1.03}, 
      {vo2_4: lthr_value * 1.06}, 
      {anaerobic_1: ftp_value * 1.21}, 
      {anaerobic_2: ftp_value * 1.50}, 
      {anaerobic_3: "Over"}, 
      {anaerobic_4: lthr_value * 1.06}, 
      {np_2: ftp_value * 1.51} 

     ]; 

     console.log(calculations); 
     Template.table.helpers({table: calculations}); 
    } 

回答

1

你定義的方式你helpersevents將無法​​正常工作。因爲這不是流星的工作方式。至於你的情況,你需要有一個reactive Dict將帶你calculations價值,你會在你的助手得到的反應返回reactive Dict。你可以有一個全局變量或模板級變量。你需要安裝被動的Dict包。如果沒有,寫在命令meteor add reactive-dict。你的代碼會是這樣的。

Template.input_fields.onCreated(function(){ 
    rd = new ReactiveDict('myDict'); 
    rd.set('calculations', []); 
}); 

Template.input_fields.helpers({ 
    'table': function(){ 
     return rd.get('calculations'); // will return your array. when ever data changes, helper will change automatically. 
    } 
}); 

Template.input_fields.events({ 
    'click #inputForm': function(e) { 
     ... your previous code here except last line. then 
     rd.set('calculations',calculations); 
    } 
}); 
+0

感謝解釋。我明白我做錯了什麼。您的建議可以正確計算所有計算結果,並且可以在控制檯中查看「rd」的值。但我仍然沒有在表格中以HTML格式獲取這些值。我的模板設置的方式有什麼問題嗎?我確實從你那裏得到了很多答案,謝謝。我更新了codepen中的代碼以防萬一你想要看? –

+0

請出示您的模板代碼,否則就很難知道爲什麼它不工作。 –

+0

該模板的代碼位於codepen鏈接的HTML部分:(http://codepen.io/webventure/pen/YqKRBq)我確定有一種更有效的方法可以解決這個問題,但就像我說的那樣剛剛開始使用流星應用程序。謝謝。 –