我需要在Handlebars模板(环境:Node.js和Meteor)中填充Twitter Bootstrap中的预先输入字段。
这是模板位:
<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 :(得分:0)
我在试图回答类似的问题时偶然发现了这一点。
双引号是必需的,因为它需要JSON。
我在您的示例中使用了ret
,而不是JSON.stringify
字符串格式:
var ret = JSON.stringify(temp);