Javascript …{{/else}} 顺便说一句
在Meteor的最新版本中,您可以将数组放入Javascript …{{/else}} 顺便说一句,javascript,meteor,Javascript,Meteor,在Meteor的最新版本中,您可以将数组放入反应变量中关于您的问题,我有几点意见: 不取 方法上不需要.fetch()。在集合上调用find()时,例如Meteor.users将返回一个光标。模板(尤其是#每个)可以通过游标进行迭代。游标通常更好,因为您不会一次将整个集合加载到内存中-fetch会这样做 流星收集是反应性的 Meteor集合已经是被动的,这意味着如果它们发生变化,它们也会触发模板的变化。因此,您不需要使用ReactiveVar来包装您的集合 查询本地数据库 您不需要使用方法来获取
反应变量中
关于您的问题,我有几点意见:
不取
方法上不需要.fetch()
。在集合上调用find()
时,例如Meteor.users
将返回一个光标。模板(尤其是#每个
)可以通过游标进行迭代。游标通常更好,因为您不会一次将整个集合加载到内存中-fetch
会这样做
流星收集是反应性的
Meteor集合已经是被动的,这意味着如果它们发生变化,它们也会触发模板的变化。因此,您不需要使用ReactiveVar
来包装您的集合
查询本地数据库
您不需要使用方法来获取用户,事实上,您不应该这样做,因为通常您希望查询本地存储的数据库,而不是调用服务器。直接在模板助手中调用Meteor.users.find()。您可以(也应该)通过控制本地可用的内容
将每个与其他一起使用
您可以在模板中使用以下内容:
{{#each userCollection}}
...
{{else}}
Waiting for response from server...
{{/each}}
如果userCollection
为空,模板将呈现else
块,就像您想要的那样
总结
删除您的方法并onCreated
,将模板助手中的所有内容更改为仅return Meteor.users.find()
,并使用{{{each userCollection}}…{{else}等待服务器的响应…{/else}
顺便说一句
在Meteor的最新版本中,您可以将数组放入
ReactiveVar
尝试使用空数组而不是字符串初始化ReactiveVar。我不知道这是否是唯一的问题,但这肯定是一个问题代码>?似乎没有产生任何影响console.log(typeof Template.instance().myAsyncValue.get())
告诉我它们是typeobject
这可能吗?通过docsReactiveVar保存一个可以获取和设置的值
尝试使用空数组而不是字符串初始化ReactiveVar。我不知道这是否是唯一的问题,但这肯定是一个问题代码>?似乎没有产生任何影响console.log(typeof Template.instance().myAsyncValue.get())
告诉我它们是typeobject
这可能吗?通过docs一个ReactiveVar保存一个可以获取和设置的值
@没有问题。如果您需要更多信息,请发表评论。如果有效,别忘了把答案标为正确。谢谢ReactiveArray包是否允许我使用Meteor方法进行插值,该方法返回数组Meteor.users.find().fetch()
?我不知道这是怎么解决这个问题的issue@redress没问题。如果您需要更多信息,请发表评论。如果有效,别忘了把答案标为正确。谢谢ReactiveArray包是否允许我使用Meteor方法进行插值,该方法返回数组Meteor.users.find().fetch()
?我不知道这应该如何解决这个问题啊,我把它变成了一个搜索功能,但我想首先能够让用户从服务器到客户端。我越想,最好的办法似乎是订阅。谢谢,我把它变成了一个搜索功能,但我想首先能够让用户从服务器到客户端。我越想,最好的办法似乎是订阅。谢谢
Template.listViewTemplate.created = function (){
var self = this;
self.myAsyncValue = new ReactiveVar("Waiting for response from serv er...");
Meteor.call('returnUsers', function (err, users) {
if (err)
console.log(err);
else
self.myAsyncValue.set(users);
});
}
Template.listViewTemplate.helpers({
userCollection: function(){
return Template.instance().myAsyncValue.get();
}
});
<ul id='usersList'>
{{userCollection}}
</ul>
{{#each userCollection}}
...
{{else}}
Waiting for response from server...
{{/each}}