我正在尝试使用反应式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
答案 0 :(得分:0)
我设置了Session变量&#39; printers&#39;一个空的领域。当我选择一家公司时,它现在正在工作,但没有公司,我没有得到任何打印机,因为我不必用“未定义”来测试公司。但是空地。
所以我改为使用空场进行测试,它不再工作了......
很奇怪测试可以取消onRendered,这一直是Mongo的问题。
我会继续搜索它。