0
我想要一個被動引導selectpicker,但我有一個奇怪的行爲: 事件必須改變選擇的選項,但它只適用於第一個事件,因爲應用程序不工作不進入onRendered部分...流星onRendered不叫
這是onRendered部分:
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();
});
這裏,模板:
<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
部分被調用。
奇怪的是,即使這沒有顯示正確的名稱,當我選擇一個與公司不匹配的名稱時,select會選擇正確的名稱。
對不起我的英語,我盡力了。
非常感謝您!
編輯:名助手:
Names:() => {
company=Session.get('printer').company;
if(typeof company!='undefined') {
return Printers.find({company: company}).fetch();
} else {
return Printers.find().fetch();
}
}
什麼是「名稱」助手? – user3374348
@ user3374348我編輯了我的帖子。我使用會話變量,所以它應該刷新被動 – FlorianD
按我的理解,這應該工作。 '.fetch()'es不是必需的。如果您從使用較少打印機的公司切換到使用較多打印機的公司,它是否有效? – user3374348