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