Meteor - 如何在同一模板助手中调用另一个函数

时间:2016-04-29 06:52:53

标签: javascript meteor

我正在尝试流星。我只是想从一个函数调用另一个函数,它给出了参考错误,说xxx没有定义。

在我的html文件中:

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

在js文件中:

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
  },

});

输出

 ReferenceError: getDaysInParticularMonth is not defined

Plz帮助。谢谢,

2 个答案:

答案 0 :(得分:1)

在模板助手

之外声明一个方法
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());
  },
});

答案 1 :(得分:1)

有一个技巧,你可以使用meteor执行从右到左的函数调用,这样你的一个函数输出将是因为另一个函数的输入等等。我希望你有意义。

您的HTML代码

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

您的js代码

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
  },
});

但是如果你想从帮助器中调用一个函数,那么你必须在辅助块之外定义函数,这也是你可以做到的。

在我的html文件中:

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

在js文件中:

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
},