以下代码未生成HTML。
下划线模板:
<script type="text/template" id="features-template">
<li class="list-group-item">
<span class="badge"><%= score %></span>
<%= prediction %>
</li>
</script>
JSON:
{
"features": {
"status": true,
"response": {
"predictions": [
["shirt", "90.12"],
["jeans", "09.88"]
]
}
}
}
jQuery代码:
var predictions = [];
_.each(response.features.response.predictions, function(prediction, i) {
predictions.push({
prediction: prediction[0],
score: prediction[1]
});
});
var tpl = _.template(featureTemplate, predictions));
console.log( tpl);
我可以看到使用值创建预测数组。
为什么这段代码不能生成正确的HTML?
答案 0 :(得分:1)
我测试了最新版本的下划线(1.8.3),其他版本可能有差异。
documentation of _.template表示在模板编译之后给出了数据:
var compiled = _.template(featureTemplate);
var tpl = compiled({predictions:predictions});
我还在模板中添加了一个foreach循环:
<script type="text/template" id="features-template">
<% _.each(predictions, function(prediction) { %>
<li class="list-group-item">
<span class="badge"><%= prediction.score %></span>
<%= prediction.prediction %>
</li>
<% }); %>
</script>