2016-04-29 6 views
0

Ich versuche Meteor. Ich möchte nur eine andere Funktion von einer Funktion aufrufen und es gibt mir Referenzfehler, der sagt, dass xxx nicht definiert ist.Meteor - Wie rufen Sie eine andere Funktion in der gleichen Vorlage Helfer

In meinem html-Datei:

<template name="hello"> 
    {{getDaysInMonth}} 
</template> 

In js-Datei:

Template.hello.helpers({ 
    getDaysInMonth: function(){ 
    var now = new Date(); 
    return getDaysInParticularMonth(now.getMonth(), now.getFullYear()); // Meteor does not find this function 
    }, 
    getDaysInParticularMonth: function(month, year) { 
    console.log("hey"); 
    return 0;  //just for test 
    }, 

}); 

Ausgabe

ReferenceError: getDaysInParticularMonth is not defined 

plz help. Danke,

Antwort

1

Es gibt einen Trick, den Sie Meteor führen die Funktionen aufrufen, von rechts können so Ihre einen Funktionsausgang wird nach links, weil Eingang für die eine andere Funktion und so weiter. Ich hoffe, das ergibt Sinn für dich.

Ihre HTML-Code

<template name="hello"> 
    {{getDaysInParticularMonth getDaysInMonth}} 
</template> 

Ihre js Code

Template.hello.helpers({ 
    getDaysInMonth: function(){ 
    var now = new Date(); 
    return [now.getMonth(), now.getFullYear()]; 
    }, 
    getDaysInParticularMonth: function(array) { 
    console.log("hey"); 
    return 0;  //just for test 
    }, 
}); 

Aber wenn Sie nur aus dem Helfer eine Funktion anrufen möchten, dann müssen Sie die Funktion außerhalb von Helfer Block definieren dies wie kannst du das auch machen.

In meinem html-Datei:

<template name="hello"> 
    {{getDaysInMonth}} 
</template> 

In js-Datei:

Template.hello.helpers({ 
    getDaysInMonth: function(){ 
    var now = new Date(); 
    return getDaysInParticularMonth(now.getMonth(), now.getFullYear()); 
    }, 

}); 

function getDaysInParticularMonth(month, year) { 
    console.log("hey"); 
    return 0;  //just for test 
}, 
1

Deklarieren Sie eine Methode außerhalb der Vorlage Helfer

function commonMethod(month, year) { 
    console.log("hey"); 
    return 0;  //just for test 
} 

Template.hello.helpers({ 
    getDaysInMonth: function(){ 
    var now = new Date(); 
    return commonMethod(now.getMonth(), now.getFullYear()); // Meteor does not find this function 
    }, 
    getDaysInParticularMonth: function(month, year) { 
    var now = new Date(); 
    return commonMethod(now.getMonth(), now.getFullYear()); 
    }, 
}); 
+0

Gibt es Gründe, warum ursprünglichen Code gescheitert? Any warum Template.instance(). Methodname() funktioniert auch nicht? – droidbee

Verwandte Themen