Javascript 无法读取属性';助手';未定义的
Meteor是beta版的,我很高兴能使用它。我在我的windows计算机上安装了它(从),并创建了一个应用程序。代码如下: html:Javascript 无法读取属性';助手';未定义的,javascript,meteor,Javascript,Meteor,Meteor是beta版的,我很高兴能使用它。我在我的windows计算机上安装了它(从),并创建了一个应用程序。代码如下: html: <!-- simple-todos.html --> <head> <title>Todo List</title> </head> <body> <div class="container"> <header> <h1>T
<!-- simple-todos.html -->
<head>
<title>Todo List</title>
</head>
<body>
<div class="container">
<header>
<h1>Todo List</h1>
</header>
<ul>
{{#each tasks}}
{{> task}}
{{/each}}
</ul>
</div>
</body>
<template name="task">
<li>{{text}}</li>
</template>
// simple-todos.js
if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
tasks: [
{ text: "This is task 1" },
{ text: "This is task 2" },
{ text: "This is task 3" }
]
});
}
它与中的代码完全相同。如果我运行这个示例,标题就会呈现得很好。另一方面,列表根本没有出现。不知何故,帮手不起作用。我发现以下javascript错误:
未捕获的TypeError:无法读取未定义的属性“helpers”
在meteor控制台中,没有打印错误或警告。我对meteor非常兴奋,我很想在将来将其用于生产应用程序,所以请帮助我解决这个(可能非常简单)问题。我希望这不仅仅是windows的问题(meteor还没有正式发布用于windows) 模板需要由
定义
元素上没有辅助对象
您可以为此使用全局帮助器,但:
Template.registerHelper("tasks", function() {
return [....]
});
另一种方法是使用
:
{{>body}
事項清單
{{{#每个任务}
{{>任务}
{{/每个}}
我要做的第一件事是添加console.dir(模板)代码>在尝试调用.helpers()
之前。问题是.body
是未定义的
,因此找出模板
的实际外观会很有用。文档不同意,使用模板.body.helpers应该可以正常工作@PeppeL-G是的,你是对的。我认为他们不赞成使用UI->Template转换
<body>
{{>body}}
</body>
<template name="body">
<div class="container">
<header>
<h1>Todo List</h1>
</header>
<ul>
{{#each tasks}}
{{> task}}
{{/each}}
</ul>
</div>
</template>