Javascript 使用CollectionFS从全局模板帮助器返回url

Javascript 使用CollectionFS从全局模板帮助器返回url,javascript,meteor,collectionfs,Javascript,Meteor,Collectionfs,我正在尝试使用全局模板帮助器获取上载图像的url。到目前为止,我尝试执行isPrimary.url(),但我只得到null,否则isPrimary.url将返回一个函数。你知道怎么处理吗 user_item.html 我不知道为什么是isPrimary.url();当它应该返回原始url时返回null,但通过isPrimary.url({store:'thumb'})修复它 我不知道为什么是isPrimary.url();当它应该返回原始url时返回null,但通过isPrimary.url({

我正在尝试使用全局模板帮助器获取上载图像的url。到目前为止,我尝试执行isPrimary.url(),但我只得到null,否则isPrimary.url将返回一个函数。你知道怎么处理吗

user_item.html
我不知道为什么是isPrimary.url();当它应该返回原始url时返回null,但通过isPrimary.url({store:'thumb'})修复它

我不知道为什么是isPrimary.url();当它应该返回原始url时返回null,但通过isPrimary.url({store:'thumb'})修复它

CollectionFS将文件异步加载到存储适配器。如果
.url()
返回null,则表示文件尚未完全上载。文件已上载。如果我记录isPrimary.url,那么我得到:函数(选项){///返回rootUrlPathPrefix+baseUrl+area+'/'+self.collection.name+'/'+self.\u id+filename+queryString;}isPrimary.url也在模板中起作用。但由于某些原因,我无法从helper@AndrésDaViá您可以使用
{{{{#if this.isUploaded}}
来保护您的助手,因此只有在上载后才会调用该助手,而不会得到它。也许举个例子会更好。谢谢请在助手代码中检查this.\u id的值。由于它是一个全局帮助程序,因此它可能不引用User.CollectionFS,而是将文件异步加载到存储适配器。如果
.url()
返回null,则表示文件尚未完全上载。文件已上载。如果我记录isPrimary.url,那么我得到:函数(选项){///返回rootUrlPathPrefix+baseUrl+area+'/'+self.collection.name+'/'+self.\u id+filename+queryString;}isPrimary.url也在模板中起作用。但由于某些原因,我无法从helper@AndrésDaViá您可以使用
{{{{#if this.isUploaded}}
来保护您的助手,因此只有在上载后才会调用该助手,而不会得到它。也许举个例子会更好。谢谢请在助手代码中检查this.\u id的值。因为它是一个全局助手,所以它可能不引用用户。
<template name="userItem">
  <div class="col-md-3">
    <div class="text-center">
      <img width="80" class="img-rounded" src="{{primaryPicture store='thumb'}}">       
    </div>
  </div>
</template>
Template.registerHelper('primaryPicture', function () {
  var isPrimary = Images.findOne({userId: this._id, primary: true});
  if (isPrimary) {
    return isPrimary.url();
  } else {
    return '/user.png';
  }
});