【发布时间】:2015-11-24 09:13:28
【问题描述】:
我有一张表,其中一列是 Bootstrap Switch 元素,稍后将用于打开或关闭该行的相应元素。
<tbody>
{{#each sensorslist}}
<tr>
<td>{{name}}</td>
<td>{{mac}}</td>
<td>
<input type="checkbox" class="on-off-checkbox" checked={{state}} />
</td>
</tr>
{{/each}}
</tbody>
但是,如果我对一行进行硬编码,一切都会很好,并且开关总是会出现。但是,当我如图所示从数据库中的传感器列表加载时,它仅显示当我通过链接转到该页面时(我使用的是 Iron Router)。如果我按 F5,它不会显示 Bootstrap 开关。
我没有使用自动发布。我正在订阅客户端中的传感器集合:
Sensors = new Mongo.Collection("sensors");
Meteor.subscribe('sensors');
为了加载数据,我使用了这个助手:
Template.sensores.helpers({
'sensorslist': function(){
return Sensors.find();
}
});
并且还要渲染元素,我将其作为渲染函数:
Template.sensores.rendered = function (){
$('.on-off-checkbox').bootstrapSwitch({
'offColor': 'danger'
});
};
正如我所说,如果我只使用菜单在 web 应用程序中移动,它可以正常工作,如果我使用 F5 刷新页面或简单地使用直接链接转到该页面,它将无法正常工作。
我注意到,如果我使用 setTimeout 在渲染中执行该代码,并添加足够的时间,它将始终有效,所以我想我错过了一些东西......
非常感谢您!
【问题讨论】:
标签: javascript jquery twitter-bootstrap meteor twitter-bootstrap-3