简体   繁体   中英

App crashing using reactiveVars (meteor.js)

I am running into an error running my Meteor.js app (using reactiveVars):

Errors prevented startup:

While processing files with ecmascript (for target web.browser): client/views/inquiry.js:67:2: client/views/inquiry.js: Unexpected token (67:2)

Your application has errors. Waiting for file change.

line 67 is the one that starts with: report: function () { in the helper function

mysite.js:

if (Meteor.isClient) {

    Template.inquiry.onCreated( function() {
        //toggles 'thank you' on inquiry template
        this.showForm = new ReactiveVar( true );

        //toggles interest buttons on inquiry template 
        this.report = new ReactiveVar( false );
        this.consult = new ReactiveVar( false );
        this.contract = new ReactiveVar( false );
    });
}

inquiry.js:

Template.inquiry.helpers({

  //toggles 'thank you' on inquiry template
  showForm: function () {
    return Template.instance().showForm.get();
  }

  //toggles interest buttons on inquiry template 
  report: function () {
    return Template.instance().report.get();
  }
  contract: function () {
    return Template.instance().contract.get();
  }
  consult: function () {
    return Template.instance().consult.get();
  }


});

Template.inquiry.events({
    'click .button': function(event, template){

        var button_id=event.currentTarget.id

        $("#" + button_id).addClass('selected');

        if(button_id == 'report' && report == false) {
            template.report.set( true );
            $("#" + button_id).addClass('selected');
        }
        else if(button_id == 'consult' && consult == false) {
            template.consult.set( true );
            $("#" + button_id).addClass('selected');
        }
        else if(button_id == 'contract' && contract == false) {
            template.contract.set( true );
            $("#" + button_id).addClass('selected');
        }
        else if(button_id == 'report' && report == true) {
            template.report.set( false );
            $("#" + button_id).removeClass('selected');
        }
        else if(button_id == 'consult' && consult == true) {
            template.consult.set( false );
            $("#" + button_id).removeClass('selected');
        }
        else if(button_id == 'contract' && contract == true) {
            template.contract.set( false );
            $("#" + button_id).removeClass('selected');
        }

    }
});

in each of the helper except last one, you need put a comma in order to build properly in meteor.

showForm: function () {
return Template.instance().showForm.get();
},

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM