Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript …{{/else}} 顺便说一句_Javascript_Meteor - Fatal编程技术网

Javascript …{{/else}} 顺便说一句

Javascript …{{/else}} 顺便说一句,javascript,meteor,Javascript,Meteor,在Meteor的最新版本中,您可以将数组放入反应变量中关于您的问题,我有几点意见: 不取 方法上不需要.fetch()。在集合上调用find()时,例如Meteor.users将返回一个光标。模板(尤其是#每个)可以通过游标进行迭代。游标通常更好,因为您不会一次将整个集合加载到内存中-fetch会这样做 流星收集是反应性的 Meteor集合已经是被动的,这意味着如果它们发生变化,它们也会触发模板的变化。因此,您不需要使用ReactiveVar来包装您的集合 查询本地数据库 您不需要使用方法来获取

在Meteor的最新版本中,您可以将数组放入
反应变量中

关于您的问题,我有几点意见:

不取 方法上不需要
.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())
告诉我它们是type
object
这可能吗?通过docs
ReactiveVar保存一个可以获取和设置的值
尝试使用空数组而不是字符串初始化ReactiveVar。我不知道这是否是唯一的问题,但这肯定是一个问题?似乎没有产生任何影响
console.log(typeof Template.instance().myAsyncValue.get())
告诉我它们是type
object
这可能吗?通过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}}