Asynchronous 如何确保模板助手具有数据?

Asynchronous 如何确保模板助手具有数据?,asynchronous,meteor,meteor-blaze,Asynchronous,Meteor,Meteor Blaze,我有一个选择框,在每个选项上运行一个小方法,以确定“选定”是什么: <label for="soft-due-date-controller">Soft Due Days:</label> <select class="form-control" id="soft-due-date-controller"> <option value="0" {{determineDefaultSelect '0'}}>0&

我有一个选择框,在每个选项上运行一个小方法,以确定“选定”是什么:

      <label for="soft-due-date-controller">Soft Due Days:</label>
      <select class="form-control" id="soft-due-date-controller">
        <option value="0" {{determineDefaultSelect '0'}}>0</option>
        <option value="1" {{determineDefaultSelect '1'}}>1</option>
        <option value="2" {{determineDefaultSelect '2'}}>2</option>
        <option value="3" {{determineDefaultSelect '3'}}>3</option>
        <option value="4" {{determineDefaultSelect '4'}}>4</option>
        <option value="5" {{determineDefaultSelect '5'}}>5</option>
        <option value="6" {{determineDefaultSelect '6'}}>6</option>
        <option value="7" {{determineDefaultSelect '7'}}>7</option>
        <option value="8" {{determineDefaultSelect '8'}}>8</option>
        <option value="9" {{determineDefaultSelect '9'}}>9</option>
        <option value="10" {{determineDefaultSelect '10'}}>10</option>
      </select>
在客户端。。。当我直接更新数据库时,它会在下拉列表中相应地加载更新。我的问题是,我在加载时多次遇到以下错误:

模板帮助程序中出现异常:TypeError:无法读取未定义的属性“currentSoftMargin”


当它工作时,这个错误似乎不正确,这是代码中唯一使用
currentSoftMargin
的地方。几乎就像模板助手
determineDefaultSelect
一样,它的运行速度快于数据库调用,并且产品异步调用。。。大概我可以防止这种情况吗?

当助手在数据订阅
就绪()之前运行时,您会遇到此错误。您可以等待订阅准备好呈现模板(同时呈现微调器),也可以防御运行时错误:

determineDefaultSelect: function(optionText){
  const doc = SoftDueDates.findOne(); // equivalent to .find().fetch()[0];
  const savedSoftScheduleDays = doc && doc.currentSoftMargin; // will not error
  return (optionText == savedSoftScheduleDays) ? "selected" : ""; // shorthand
},

当助手在数据订阅
ready()
之前运行时,您会遇到此错误。您可以等待订阅准备好呈现模板(同时呈现微调器),也可以防御运行时错误:

determineDefaultSelect: function(optionText){
  const doc = SoftDueDates.findOne(); // equivalent to .find().fetch()[0];
  const savedSoftScheduleDays = doc && doc.currentSoftMargin; // will not error
  return (optionText == savedSoftScheduleDays) ? "selected" : ""; // shorthand
},

在模板中使用
{{{if-Template.subscriptionsReady}{{/if}}
确保所有需要的数据都准备好了。

在模板中使用
{{{if-Template.subscriptionsReady}{/if}}
确保所有需要的数据都准备好了。

这正是我需要的!这正是我需要的!谢谢