2012-06-29 35 views
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"}] 
+0

我'不知道我是否正確理解你,但是'JSON.stringify()'將你的js對象序列化爲一個JSON字符串,所以也許這不是你想要的! – bijan

回答

1

只需使用name關鍵字更改Namelist_name即可。由於jQuery的tokeninput使用名稱作爲密鑰 正如你的硬編碼數據中所提到的。如果我們從http://loopj.com/jquery-tokeninput/下載jquery tokeninput。我們知道關鍵字是'name'。

希望這有助於....

+0

謝謝配對..問題已解決... – JacK

+1

@JacK然後不要忘記[將此答案標記爲已接受](http://meta.stackexchange.com/a/5235/182741)。 – j0k

1

如果你的作品有一個本質的區別的測試數據進行比較,您返回的JSON數據:你缺少你的MongoDB的JSON結果id領域,而不是提供_idid字段目前是您用於自動填充的jQuery tokenInput插件的硬編碼默認值。

幾個人已經提交了補丁,允許使用tokenValue參數設置不同的密鑰。

示例(未測試)補丁:tokenValue cannot be changed