首先,我想提一下,我对Meteor.js没有多少经验,只是刚刚开始,而不是经常使用它。如果这个问题看似愚蠢或明显,请原谅我。
我正在尝试访问模板中的{{#each}}帮助器(模板名称是目录):
{{#each teachers}}
<h1>{{name}}</h1><br />
<p>{{description}}</p>
{{/each}}
所以要参考这个,我输入以下代码:
Template.directory.teachers = function(){
}
但Meteor抛出以下异常: “ReferenceError:模板未定义”
有人知道我在这里做错了吗?再次,对不起,如果答案是显而易见的。我正在运行最新的Windows版本,我的所有软件包都已更新。感谢您的帮助:)
答案 0 :(得分:1)
您的directory.html文件应与以下内容类似:
<template name="directory">
{{#each teachers}}
<h1>{{name}}</h1><br />
<p>{{description}}</p>
{{/each}}
</template>
您的directory.js文件应与以下内容类似:
Template.directory.helpers({
teachers: function () {
return Teachers.find({}); // or as in your sample ['teacher1', 'teacher2'];
}
});
答案 1 :(得分:1)
此错误的问题在于您尝试在服务器上调用Template对象。模板应仅存在于客户端上。所以你可以像这样包装你的代码:
if(Meteor.isClient){
Template.directory.helpers({
teachers: function() {
return ['teacher1', 'teacher2']; //...
}
});
}
答案 2 :(得分:0)
这不是你如何定义助手。通过将对象传递给辅助函数
来定义助手Template.directory.helpers({
teachers: function() {
return ['teacher1', 'teacher2']; //...
}
});