2013-04-14 43 views
0

我需要在Handlebars模板(環境:Node.js和Meteor)中的Twitter Bootstrap中填充一個typeahead字段。如何在Handlebars中填充引導程序typeahead?

這裏是模板位:

<input type="text" data-provide="typeahead" data-source={{{names}}}> 

這裏是JavaScript位:

Template.myTemplate.names = function() { 
    var temp = MyCollection.find({}).map(function (x) { return x.name; }); 
    var ret = "[\"" + temp.join("\", \"") + "\"]"; 
    return ret; 
}; 

的問題是,所生成的JavaScript是不正確的,例如,

<input type="text" data-provide="typeahead" data-source="["John", " "Albert"]> 

並且不起作用。我認爲我是過度工程,並且必須有一個更好的方式來生成/呈現Handlebars模板...

+0

你嘗試用簡單的報價? var temp = MyCollection.find({})。map(function(x){return「'」+ x.name +「'」;}); var ret =「[」+ temp.join(「,」)+「]」; – mquandalle

+0

我嘗試了簡單的引號方式。不知何故,typeahead小部件只理解雙引號。 –

回答

0

我試圖自己回答類似的問題時偶然發現了這一點。

雙引號是必需的,因爲它需要JSON。

取而代之的是ret字符串格式化的,我在你的例子中使用JSON.stringify這樣的:

var ret = JSON.stringify(temp);