2016-07-26 82 views
0

我有這個代碼從我的集合中檢索數組數據。我設法將它們拆分成其他數據以獲取數組中的每個位置的數據,但是現在我需要將這些數據的每個數據用於另一個查詢,當我在拆分之後直接進行查詢時出現錯誤,是否存在一種保存變量的方法mySplitResult []作爲其他全局變量從另一個模板助手訪問它以進行查詢,或者有任何其他方式使用mySplitResult的結果在同一個函數中進行查詢。所有這些都是從客戶端的JavaScript中完成的。流星客戶端的全局變量javascript

Template.testeo.helpers({ 
    ls: function(){ 
    var list=Calender.find({status_visualizacion: "visible"}); 
    var count = 0; 
    list.forEach(function(calender){ 
     var result = + count + "," + calender.calendario_slaves; 
     mySplitResult = result.split(","); 
     var i = 0; 
     while (i < mySplitResult.length){ 
     //console.log(mySplitResult[i]); 
     trozo= mySplitResult[i]; 
     console.log(trozo); 
     i++; 
     //return trozo; 
     } 
     count += 1; 

    }); 
    } 
}); 
+0

不,這不是可以從不同的模板訪問任何全局JavaScript變量。 –

+0

這個問題沒有多大意義。首先'mySplitResult'正在循環中計算,因此它有多個值。其次爲什麼你只加入字符串來再次分割它們?如果'calender.calendario_slaves'是一個數組,那麼你可以使用它。第三,你的幫手不會返回任何東西(有一個註釋掉'return',但它在'while'循環內部,所以也沒有意義。你究竟在做什麼? –

回答

0

有幾種方法可以實現。一個是使用Session對象來存儲值。然而,這是很危險的,因爲Session是爲用戶會話的長度而生活的。許多奇怪的錯誤和異常都歸咎於過度依賴Session的代碼,因爲您可能會進入意想不到或未經過深思熟慮的奇怪狀態。

另一種方法是使用路徑路徑變量或查詢參數將值傳遞到模板中。我更喜歡路由路徑變量,因爲它更像是一種「RESTful」的感覺,可以執行類似app.com/users/codechimp的操作,其中本示例中的codechimp是我想在我的應用中查看的用戶ID。爲了做到這一點,你需要考慮如何最好地利用URL模式。我認爲這是一種更好的方法,因爲它不會將狀態與代碼中共享的變量綁定在一起,從而使其不易受到(幾乎不可能讀取)來自共享會話變量的錯誤。

1

好,如果你希望變量是全球性的,而不是反應然後就插入到窗口的變量,並訪問其他的模板

window.Myvar = x