如何在Template事件中访问meteor调用

时间:2015-05-26 04:32:14

标签: meteor

我正在进行流星调用并在客户端获得数组。

我想在Template中的一个事件中使用这个数组,但是在流星调用之外无法识别该数组。

如何在Template事件中访问此数组?

    if (Meteor.isClient) {   
        result=[];
        Meteor.call('getApiResult', function (err, result) {
            if (result) {
                console.log("reached meteor call")
                console.log(result);

            }
        });

     Template.dpVar.events = {
            'click .addproduct' : function  (err) {

                for (i = 0; i < result.length; i++) {
                    var Temp_Name = result[i];
                    var Temp_Val = document.getElementById(Temp_Name).value
                    console.log("temp name is ", Temp_Name);
                    productDB.insert({ Temp_Name: Temp_Val});
                    console.log("temp val is ", Temp_Val);
                }

            }
}//Client Ends

1 个答案:

答案 0 :(得分:1)

您没有设置result,您正在重载名称; - )

试试这个,如果不起作用,请将result = []移到全局范围内。

if (Meteor.isClient) {
    result = [];
    Meteor.call('getApiResult', function (err, res) {
        if (res) {
            console.log("reached meteor call")
            console.log(res);
            result = res;
        }
    });

    Template.dpVar.events = {
        'click .addproduct' : function  (err) {         
            for (i = 0; i < result.length; i++) {
                var Temp_Name = result[i];
                var Temp_Val = document.getElementById(Temp_Name).value
                console.log("temp name is ", Temp_Name);
                productDB.insert({ Temp_Name: Temp_Val});
                console.log("temp val is ", Temp_Val);
            }

        }
    }
}