0

我有一个在流星中使用的自动完成文本框功能。它适用于以下硬编码数据,例如:

$(document).ready(function() {     
        $("#demo-input-facebook-theme").tokenInput(                    
          [{id: 7,  name: "Ruby"},{id: 11, name: "Python"},{id: 13, name: "JavaScript"}],
          {theme: "facebook"}
        );
});

现在,我已经从数据库 MongoDB 中获取数据,当我将此数据作为参数传递给自动完成功能时,它不起作用......我也使用了该方法JSON.stringify()

返回的数据如下所示:

[{"_id":"ab170916-a44b-49f9-85ef-a34c90fb815d","Namelist_name":"Badminton"},
 {"_id":"f768e4ba-b628-4d3f-8da6-0bad31346dcc","Namelist_name":"Biking"},
 {"_id":"0bee086b-1785-40c9-9c5d-a39331c875e1","Namelist_name":"Chess"},
 {"_id":"4eae1e54-ec60-4578-8052-0bf1bccf13b1","Namelist_name":"Golf"},
 {"_id":"a0d2b89e-a2d6-4b30-8e38-779c5a886d49","Namelist_name":"Hiking"},
 {"_id":"f3a05456-38d4-40f2-86b1-eddea061fdf0","Namelist_name":"Tennis"},
 {"_id":"3669b9a2-3f87-4579-8064-82d627196fcb","Namelist_name":"Walking"},
 {"_id":"6ac6497e-82b2-40fe-8b24-152e9f42750d","Namelist_name":"Wine Tasting"},
 {"_id":"15a7ca87-aef7-43ab-945b-168647bb59aa","Namelist_name":"Yoga"},
 {"_id":"bc40d166-64ef-4e61-85cd-60064dc037cd","Namelist_name":"Zumba"}]
4

3 回答 3

1

如果您将返回的 JSON 数据与有效的测试数据进行比较,则存在一个本质区别:您id在 MongoDB JSON 结果中缺少该字段,而是提供了_id. 该id字段当前是用于自动完成的jQuery tokenInput插件的硬编码默认值。

一些人已经提交了补丁,允许使用tokenValue参数设置不同的密钥。

示例(未经测试)补丁:tokenValue cannot be changed

于 2012-07-01T23:58:36.843 回答
1

只需使用 name 关键字更改 Namelist_name。由于 jquery tokeninput 使用名称作为硬编码数据中提到的键。如果我们从http://loopj.com/jquery-tokeninput/下载 jquery tokeninput 。我们知道关键字是“名称”。

希望这可以帮助....

于 2012-08-25T06:29:37.417 回答
1

如果您使用自由文本自动完成多个项目,您可能需要查看我创建的这个包:

https://github.com/mizzao/meteor-autocomplete

于 2013-09-22T22:11:31.260 回答