繁体   English   中英

使用JSON数据输入的bootstrap typeahead标签

[英]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(是否有帮助?)

**

UPDATE

**

我使用的插件与新的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"
    ]
}

我的小提琴已更新http://jsfiddle.net/chou_one/Xss96/7/

确保您没有重新发明轮子。 流星有几个预先输入 / 自动完成包。 他们在本地使用集合。

通过使用另一个插件tokenfield并添加一些自定义jquery代码,可以使其工作。 可以关闭

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM