流星onRendered没有调用

时间:2017-08-29 09:01:33

标签: meteor meteor-blaze bootstrap-selectpicker

我正在尝试使用反应式bootstrap selectpicker,但我有一个奇怪的行为: 一个事件必须改变选择的选项,但它只能在第一个不起作用的事件之后起作用,因为该应用程序没有进入onRendered部分......

这是onRendered部分:

[4, 7],[2],[1, 6],[3, 5],[0, 8, 9]

这里是模板:

var renderTimeout = false;
Template.printerselect.onRendered( function(){
  if (renderTimeout !== false) {
    Meteor.clearTimeout(renderTimeout);
  }
  renderTimeout = Meteor.setTimeout(function() {
    $('#printerName').selectpicker("refresh");
    renderTimeout = false;
  }, 10);
});

Template.printerSetupForm.onRendered( function(){
  $('.selectpicker').selectpicker();
});

渲染页面时会调用刷新。

然后我更改了更改某些Session变量的公司,并且反应性地更改了名称选择选项,但是没有调用刷新,因此不会进入onrendered部分。

但是,当我再次更换公司时,<div class="col-lg-3 col-md-4 col-xs-12 form-group"> <label>COMPANY</label> <select id="printerCompany" class="form-control selectpicker" name="printer[company]"> <option selected="true" disabled="disabled" value={{company}}> Please Select A Printer Company </option> {{#each Companies}} <option value="{{company}}" {{printerCompanySelected company}}> {{company}}</option> {{/each}} </select> </div> <div class="col-lg-3 col-md-4 col-xs-12 form-group"> <label>PRINTER NAME</label> <select id="printerName" class="form-control selectpicker" name="printer[name]"> <option selected="true" disabled="disabled" value={{name}}> Please Select A Printer </option> {{#each Names}} <!--<option value="{{name}}" {{printerNameSelected name}}> {{name}} </option>--> {{>printerselect}} {{/each}} </select> </div> <template name="printerselect"> <option value="{{name}}"> {{name}} </option> </template> 部分就会被调用。

奇怪的是,即使这不显示正确的名称,当我选择的名称与公司不匹配时,选择选择正确的名称。

对不起我的英语,我尽了最大努力。

提前谢谢你!

编辑:姓名助手:

onRendered

1 个答案:

答案 0 :(得分:0)

我设置了Session变量&#39; printers&#39;一个空的领域。当我选择一家公司时,它现在正在工作,但没有公司,我没有得到任何打印机,因为我不必用“未定义”来测试公司。但是空地。

所以我改为使用空场进行测试,它不再工作了......

很奇怪测试可以取消onRendered,这一直是Mongo的问题。

我会继续搜索它。