[英]bootstrap typeahead tags input with JSON data
将工作解决方案移植到流星应用程序时,我遇到了障碍。
typeahead和tags输入插件在我的本地PC上可以正常工作,但是当我将其移植到meteor.js时,它会以某种方式中断。 我添加了所有与小提琴相同的东西
http://jsfiddle.net/chou_one/Xss96/4/
(您可以查看通过保管箱附加的资源)
所有的JS代码都包装在我的渲染函数中
var elt = $('.tags-typeahead');
elt.tagsinput();
elt.tagsinput('input').typeahead({
prefetch: '/assets/tags.json'
}).bind('typeahead:selected', $.proxy(function (obj, datum) {
this.tagsinput('add', datum.value);
this.tagsinput('input').typeahead('setQuery', '');
}, elt));
tags.json存储在client / assets / tags.json内部
加载时,我的控制台出现以下错误
Exception from Deps afterFlush function: Error: one of local, prefetch, or remote is required
at Function.jQuery.extend.error (http://192.168.0.11:3000/packages/jquery.js?265926494aaa3929cd2e30da265211c5929f37a4:281:9)
at new Dataset (http://192.168.0.11:3000/client/assets/js/typeahead.js?64e2027d5c9f1fbb2811d733c4555379271f54a5:382:19)
at http://192.168.0.11:3000/client/assets/js/typeahead.js?64e2027d5c9f1fbb2811d733c4555379271f54a5:1085:67
at Object.jQuery.extend.map (http://192.168.0.11:3000/packages/jquery.js?265926494aaa3929cd2e30da265211c5929f37a4:544:13)
at methods.initialize (http://192.168.0.11:3000/client/assets/js/typeahead.js?64e2027d5c9f1fbb2811d733c4555379271f54a5:1084:34)
at jQuery.fn.typeahead (http://192.168.0.11:3000/client/assets/js/typeahead.js?64e2027d5c9f1fbb2811d733c4555379271f54a5:1135:43)
需要注意的是,这仅适用于预输入版本0.9.3。 如果我使用最新版本,它将停止工作! bootstrap-3 typeahead版本似乎也不起作用。 jQuery版本是1.11.0
我很确定流星配置存在一些问题,因为复制的所有文件和代码都与工作副本相同。 我的流星版本为0.70 template-engine-preview-release-10.1(是否有帮助?)
**
**
我使用的插件与新的typeahead版本不兼容。 因此,我设法查看了tokenfield插件。 编辑-标题也已更改
2.这与新的typeahead很好地配合,因此可以实现我想要的。 现在,我需要一些有关如何在Bloodhound引擎中正确加载JSON对象的指南(尝试了多次但没有运气,并且我的JSON有效),它没有给出任何自动建议
3.如果这可以在我的独立环境中使用,我很有信心它将与流星应用程序一起使用
var engine = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.taglist); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: { url: 'tag.json'}
//remote: 'tag.json'
});
engine.initialize();
$('#tokenfield-typeahead').tokenfield({
typeahead: {
source: engine.ttAdapter()
}
});
我的JSON
{
"taglist": [
"Birthday & Special Events",
"Portrait & Family",
"Fashion",
"Product"
]
}
通过使用另一个插件tokenfield并添加一些自定义jquery代码,可以使其工作。 可以关闭
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.