Meteor #each - 如何从变量中获取每个项目并将其呈现在页面上?
Meteor #each - How to get each single item out of a variable and render it on a page?
我正在使用 Meteor 并尝试使用 #each,但我遇到了问题。我有一些值存储在 var
中,例如:
var a = [465,77987,2132,2];
我想在 HTML 上呈现 a
的每个值。我认为 #each
是正确的方法吗?实际上我不知道如何使用 #each
并且我找到的文档对我没有真正的帮助。我写了下面的代码:
JS:
Template.page.helpers({
values: function() {
return a;
}
});
HTML:
{{#each values}}
{{> page}}
{{/each}}
但这显然是错误的,因为我在客户端控制台中得到了这个错误:
Error: {{#each}} currently only accepts arrays, cursors or falsey values.
我还以为是数组呢?
更新
所以现在我已经使用了#each in 方法,但是我仍然得到相同的错误消息:
Error: {{#each}} currently only accepts arrays, cursors or falsey
values. at badSequenceError (observe-sequence.js:183) at
observe-sequence.js:148 at Object.Tracker.nonreactive (tracker.js:631)
at observe-sequence.js:125 at Tracker.Computation._compute
(tracker.js:339) at Tracker.Computation._recompute (tracker.js:358) at
Object.Tracker._runFlush (tracker.js:523) at onGlobalMessage
(meteor.js:401)
JS:
Template.page.helpers({
values: function() {
var a = [465,77987,2132,2]
return a;
}
});
HTML:
{{#each a in values }}
{{> a}}
{{/each}}
更新 2
我现在知道这个错误是从哪里来的了。对不起,实际上我的第一个 post 不正确。我忘了,这些值 [465,77987,2132,2]
没有直接存储在 var a
.
它们存储在会话变量和 var a = Session.get('values')
中,我认为这就是我收到此错误的原因...因此,我认为这不适用于 #each
?也许我必须先将它保存到我的 MongoDB,然后再将其呈现在 HTML 或类似的东西上。
尝试 each/in 构造:
{{#each value in values}}
{{value}}
{{/each}}
c.f。 http://blazejs.org/guide/spacebars.html#Each-in
您在 each 中指定了整个模板,这正是它所抱怨的。
我会把所有的代码放在一个例子中。仅当您使用推荐的应用程序结构时才考虑 'import'。这些文件必须位于同一目录中。在 page.js 中排名第一:
import './page.html';
Template.page.helpers({
values: function() {
var a = [465,77987,2132,2];
return a;
}
});
page.html第二名:
<template name="page">
{{#each a in values}}
{{a}}
{{/each}}
</template>
我正在使用 Meteor 并尝试使用 #each,但我遇到了问题。我有一些值存储在 var
中,例如:
var a = [465,77987,2132,2];
我想在 HTML 上呈现 a
的每个值。我认为 #each
是正确的方法吗?实际上我不知道如何使用 #each
并且我找到的文档对我没有真正的帮助。我写了下面的代码:
JS:
Template.page.helpers({
values: function() {
return a;
}
});
HTML:
{{#each values}}
{{> page}}
{{/each}}
但这显然是错误的,因为我在客户端控制台中得到了这个错误:
Error: {{#each}} currently only accepts arrays, cursors or falsey values.
我还以为是数组呢?
更新
所以现在我已经使用了#each in 方法,但是我仍然得到相同的错误消息:
Error: {{#each}} currently only accepts arrays, cursors or falsey values. at badSequenceError (observe-sequence.js:183) at observe-sequence.js:148 at Object.Tracker.nonreactive (tracker.js:631) at observe-sequence.js:125 at Tracker.Computation._compute (tracker.js:339) at Tracker.Computation._recompute (tracker.js:358) at Object.Tracker._runFlush (tracker.js:523) at onGlobalMessage (meteor.js:401)
JS:
Template.page.helpers({
values: function() {
var a = [465,77987,2132,2]
return a;
}
});
HTML:
{{#each a in values }}
{{> a}}
{{/each}}
更新 2
我现在知道这个错误是从哪里来的了。对不起,实际上我的第一个 post 不正确。我忘了,这些值 [465,77987,2132,2]
没有直接存储在 var a
.
它们存储在会话变量和 var a = Session.get('values')
中,我认为这就是我收到此错误的原因...因此,我认为这不适用于 #each
?也许我必须先将它保存到我的 MongoDB,然后再将其呈现在 HTML 或类似的东西上。
尝试 each/in 构造:
{{#each value in values}}
{{value}}
{{/each}}
c.f。 http://blazejs.org/guide/spacebars.html#Each-in
您在 each 中指定了整个模板,这正是它所抱怨的。
我会把所有的代码放在一个例子中。仅当您使用推荐的应用程序结构时才考虑 'import'。这些文件必须位于同一目录中。在 page.js 中排名第一:
import './page.html';
Template.page.helpers({
values: function() {
var a = [465,77987,2132,2];
return a;
}
});
page.html第二名:
<template name="page">
{{#each a in values}}
{{a}}
{{/each}}
</template>