2016-07-26 6 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

を挿入します。 –

+0

この質問はあまり意味がありません。 'mySplitResult'の最初はループで計算されていますので、複数の値があります。第二に、文字列を結合して再び分割するのはなぜですか? 'calender.calendario_slaves'が配列ならば、それを使うことができます。第3に、ヘルパーは何も返しません(コメントアウトされた 'return'がありますが、' while'ループの内部には意味がありません)。実際に何をしようとしていますか? –

答えて

0

これを達成するにはいくつかの方法があります。 1つは、Sessionオブジェクトを使用して値を格納することです。しかし、Sessionはユーザーのセッションの長さに関係しているので、これは危険です。奇妙なバグや異常の多くは、予期せぬものやよく考えられない奇妙な状態に陥る可能性があるため、セッションにあまりにも頼っているコードに起因しています。

他の方法は、ルートパス変数またはクエリパラメータを使用してテンプレートに値を渡すことです。 app.com/users/codechimpのような何かをする "RESTfulな"感覚の方が多いので、私はルートパス変数を自分で好みます。この例ではcodechimpは私のアプリで見たいユーザーIDです。この権利を実行するには、URLパターンを最適に活用する方法をいくつか考えなければなりません。これは一般に、コード間で共有されている変数に状態を結び付けないため、これはより良いアプローチです。共有セッション変数に起因するバグに影響されにくくなります。うまく

1

あなたは変数が無効グローバルとないようにしたいならば、ちょうどありません、それは別のテンプレートから任意のグローバルjavascriptの変数にアクセスすることはできません他のテンプレートからウィンドウ変数とアクセスに

window.Myvar = x 
関連する問題