Meteor:在Controller和Helper之间共享/传递变量(diff文件)

时间:2015-12-01 04:23:13

标签: javascript arrays meteor meteor-helper

我试图将我本地模板助手中定义的变量传递给模板控制器(因此我可以将其与表单一起提交并将其插入到集合中)。无法弄清楚如何将该变量包含在控制器的范围内。

这是我的助手(来自控制器的差异文件,因为我使用流星样板文件结构):

Template.addvenue.rendered = function() {

 // Call Multiselector 
$('#cuisineType').multiselect({
    onDropdownHide: function() {
        var cuisineTypeEvent = $('.multiselect-container.dropdown-menu > .active').find('input[type="checkbox"]').map(function() { return this.value;});
    }
});

我需要传递给Controller的是" cuisineTypeEvent" (返回一个字符串数组[' french',' american']),这样我就可以将它插入到集合中。 控制器(我需要传递数组的部分(而不是cuisineType):

var params = {
venueAttributes: {
            venueType: venueType,
            cuisineType: cuisineType,
            }

我研究了在同一个文件中创建另一个帮助器,但是我只找到了一些示例,其中我使用在Template.xx.rendered之外定义的变量。我需要留在它内部,因为它是由下拉框创建的。

谢谢! 丹。

1 个答案:

答案 0 :(得分:3)

您可以使用Meteor Sessions进行此操作。

Session.set("sessionName",value);

在控制器中,您可以使用以下方法获取相同的Session变量:

var data = Session.get("sessionName");