我遵循了Meteor.com的指示,但是我遇到了这个错误。我还将其更改为 template.registerHelper ,但似乎没有输出响应。
main.js:8个未经许可的typeerror:无法阅读未定义的属性"帮助者" 在main.js(main.js:8) 在FileValuate(模块 - runtime.js?hash = 8587d188e038b75ecd27Ed2469A52B269E38FB62:343) 在需要(模块 - runtime.js?hash = 8587D188E038B75ECD27ED2469A52B269E38FB62:238) 在app.js?hash = 08534f7c7b3f0963300e61b8d521d38ce05c92:90
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import './main.html';
PlayersList = new Mongo.Collection('players');
if(Meteor.isClient) {
Template.main.helpers({ "player" : function(){
return PlayersList.find();
},
});
}
if(Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}
<head>
<title>leaderboard</title>
</head>
<body>
{{> hello}}
<ul>
{{#each player}}
<li>{{name}}: {{score}}</li>
{{/each}}
</ul>
</body>
<template name="hello">
<h1>LeaderBoard</h1>
</template>
有问题的行是由错误消息暗示的Template.main.helpers
。
发生这种情况,因为您没有main
模板。要么使用您想要的HTML创建一个,它应该在<Template>
标签中:
<Template name="main">
<!-- HTML -->
</Template>
,或者您可以将目标的模板更改为Template.body
,因为您使用的辅助器当前位于您的身体中。
相关教程部分:
标签内部的所有内容都被编译为流星模板, 可以将其包含在HTML中,并使用{{> templateName}}或 使用template.templateName在JavaScript中引用。另外, 可以在JavaScript中使用Template.Body在JavaScript中引用身体部分。 将其视为特殊的"父"模板,可以包括其他模板 儿童模板。