【发布时间】:2016-02-26 05:02:10
【问题描述】:
当使用 Bootstrap 多选时,我发现多选 jquery 总是有点过早触发 - 在模板完成从助手中提取数据之前,因此选择框通常是空的(我会说大约 60 % 的时间)。
显然 Template.usersLayout.rendered() 不是调用依赖于已呈现数据的函数的正确位置。有什么更好的方法来做到这一点?
另外,我猜让 bootstrap-select javascript 'reactive 将是一等奖。我该怎么做?
代码如下
===========
我正在使用帮助器 (#each) 创建一个选择框,其中每个选项都是它自己的数据上下文。
<template name="usersLayout">
<form>
<!-- Multiselect for instruments -->
<div class="form-group">
<label for="playerInstruments">Player instruments</label>
<div class="controls text-left">
<select id="playerInstruments" multiple="multiple" class="selectFilter" name="playerInstruments">
{{#each instruments}}
<option value="{{name}}">{{name}}</option>
{{/each}}
</select>
</div>
</div>
</form>
</template>
helper 定义如下:
Template.usersLayout.helpers({
/* Database retrievals */
// Returns all Instruments from Mongo
instruments: function() {
return Instruments.find();
}
})
twitter 引导代码如下所示:
Template.usersLayout.rendered = function () {
$('#playerInstruments').multiselect({
disableIfEmpty: true,
onChange: function(option, checked) {
// Set the session as the checked valuess
var tempSessionArr = $("#playerInstruments").val();
// Add or delete from Session
Session.set('playerInstruments', tempSessionArr);
},
});
}
【问题讨论】:
-
您是如何订阅数据的?在路由器上?你能告诉我们订阅代码吗?
-
不,我还没有订阅。我还没有添加需要订阅的安全设置(我认为)。但这是我的第一个流星应用程序,如果这没有意义,请纠正我。
-
我正在使用 flow-router,顺便说一下,在加载具有其他引导选择要求的新页面时会导致问题
标签: twitter-bootstrap meteor bootstrap-select