我正在使用带有 Iron Router 的 Meteor,并且似乎无法提前输入(此版本:https ://github.com/bassjobsen/Bootstrap-3-Typeahead )工作。
这是一些代码:
HomeController = RouteController.extend({
//....
after: function () {
var tags = this.getData().tags;
console.log(tags);
if(tags.length > 0) {
var tags = ['hello', 'world'];
console.log("Adding typeahead for tags to ", $('.input-search')[0]);
console.log("tags: ", tags);
$('.input-search').typeahead({
source: tags,
updater: function(item) {
Router.go('/projects/tag/' + item);
}
});
}
},
我有一个标题,它是应用程序布局的一部分,并且有这样的输入:
<input type="text" class="form-control input-search" data-provide="typeahead" placeholder="Search">
after: 函数中的 jQuery 正确获取输入。但是在输入上调用 typeahead 似乎并没有正确激活 typeahead:当输入输入时,什么也没有发生。
但是,如果我将 typeahead 调用包装在 setTimeout 中,它确实有效。
当然,每当您开始在 setTimeouts 中包装内容时,就会出现问题。
使用 Iron Router 时,在哪里/何时初始化 typeahead 的正确位置?