方法调用不是从事件返回,而是来自控制台

时间:2016-02-11 13:37:00

标签: meteor meteor-methods

我有一个奇怪的问题,我无法弄清楚。我在模板事件句柄中有一个方法和一个方法调用。由于某种原因,方法调用只能像5次中的1次一样工作,并且它不会更新DOM。当调用有效时,console.log(Session.get('getReportData')+ " from method call");将对象返回到控制台但不返回DOM。

当我在控制台中手动设置变量并调用时:

Meteor.call('getReportData',startDate, finishDate, function(err, data) {
                console.log("is the call working at all??");
                if (err)
                    console.log(err);
                Session.set('getReportData', data);
                console.log(Session.get('getReportData')+ " from method call");
            });

我得到了所有东西,DOM也得到了更新。

以下是代码:

Method:

'getReportData': function(startDate, finishDate) {
        /*
        if (mingi check, mis annaks errorit?) {
            throw new Meteor.Error("no-data-found", "No data can be found for selected period");
        } */
        var reportData = ScrapReport.find({dateEntered: { $gte: startDate}, dateEntered: { $lte: finishDate}}).fetch();
        return reportData;
    }
Client:

Template.report.events({
    'click .btn': function(startDate, finishDate) {
        var startDate = $('#startDate').val();
        console.log(startDate + ' StartfromTheButton')
        var finishDate = $('#finishDate').val();
        console.log(finishDate + ' FinishfromTheButton')

        Meteor.call('getReportData',startDate, finishDate, function(err, data) {
            console.log("is the call working at all??");
            if (err)
                console.log(err);
            Session.set('getReportData', data);
            console.log(Session.get('getReportData')+ " from method call");
        });
    }
})

Template.reportData.helpers({
    'reportData': function () {
        return Session.get('getReportData');
    }
});

什么可能导致这个问题?

  1. 每次通话都不起作用。
  2. 什么时候工作,DOM没有更新?

1 个答案:

答案 0 :(得分:0)

我在函数调用和event.preventDefault();

中缺少事件