我想建立一個標籤輸入像StackOverflow中的一個。我試圖將Meteor集合用作TypeaheadBloodhound的遠程或預取數據,因爲我想最終使用Bootstrap Tokenfield。使用流星收集類型頭血獵犬,最好不用我自己的API
根據他們的文檔和示例,JSON數據的url是絕對必需的。我怎樣才能將這些數據,最好是反應性地提供給獵豹犬?我查看了Meteor Typeahead package,但我無法弄清楚如何將它與Meteor Tokenfield package一起使用。
下面是我試過的,但它不起作用。 ?:(
<div class="control-group">
<label class="control-label" for="users">Users</label>
<div class="controls">
<input type="text" class="form-control" id="tokenfield-typeahead-users" value="" />
</div>
</div>
Template.viewUsers.rendered = function() {
var users = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.username);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 20,
remote: {
// url points to a json file that contains an array of tokens
url: function() {
return Meteor.users.find().fetch().map(function(user){ return user.username; });
}
}
});
users.initialize();// kicks off the loading/processing of `local` and `prefetch`
// passing in `null` for the `options` arguments will result in the default
// options being used
$('#tokenfield-typeahead-users').tokenfield({
typeahead: [null, {
name: 'users',
displayKey: 'username',
source: users.ttAdapter()
// `ttAdapter` wraps the suggestion engine in an adapter that
// is compatible with the typeahead jQuery plugin
}]
});
};
我不想建立一個API,但如果我有,我怎麼提供數據
我還沒有看過TokenField,但是你有沒有考慮過使用[autocomplete](http://autocomplete.meteor.com)軟件包,並根據需要從Bootstrap移植該功能?標籤輸入的另一種替代方法是[選擇2](https://atmospherejs.com/?q=select2)。 – 2014-11-05 22:42:01
是的,我已經考慮過這些。但是,正如我的文章的第一句話所述,「我想要構建一個像StackOverflow中那樣的標籤輸入。」您建議的解決方案不能滿足此要求。除非你知道讓他們這樣做的方法嗎? – FullStack 2014-11-06 03:34:56
試圖做同樣的事情... – 2016-09-19 13:28:43