流星客户端javascript中的全局变量

时间:2016-07-26 11:45:48

标签: javascript meteor

我有这段代码从我的集合中检索数组数据。我设法将它们拆分到其他位置以获取数组中每个位置的数据,但现在我需要将这些数据用于另一个查询,当我在拆分后直接进行查询时出现错误,是否有一种方法可以保存变量mySplitResult []作为另一个全局变量从另一个模板助手访问它来进行查询,或者是否有其他方法可以使用mySplitResult的结果在同一个函数中进行查询。这一切都是在客户端使用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;

    });
  }
}); 

2 个答案:

答案 0 :(得分:1)

如果您希望变量是全局变量而不是被动反应那么只需插入窗口变量并从其他模板访问

window.Myvar = x

答案 1 :(得分:0)

有几种方法可以实现。一种方法是使用Session对象来存储值。但这很危险,因为Session的用户会话长度很长。许多奇怪的错误和异常都归因于过多依赖于Session的代码,因为你可以进入意想不到或没有深思熟虑的奇怪状态。

另一种方法是使用路径路径变量或查询参数将值传递到模板中。我自己更喜欢路径路径变量,因为它更像是一种“RESTful”感觉来做像app.com/users/codechimp这样的事情,其中​​codechimp在这个例子中是我想要在我的应用中查看的用户ID。为了做到这一点,您需要考虑如何最好地利用URL模式。我觉得这是一种更好的方法,因为它不会将状态与您的代码之间共享的变量联系起来,这反过来使得它更容易受到影响(几乎不可能读取)来自共享会话变量的错误。