自动完成功能在流星中不起作用

时间:2012-06-29 09:19:26

标签: mongodb meteor

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

$(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"}]

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

只需使用name关键字更改Namelist_name即可。由于jquery tokeninput使用name作为键 如您的硬编码数据中所述。如果我们从http://loopj.com/jquery-tokeninput/下载jquery tokeninput。我们知道关键字是'name'。

希望这会有所帮助......

答案 2 :(得分:1)

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

  

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