Underscore不会生成HTML

时间:2015-07-11 12:17:00

标签: underscore.js underscore.js-templating

以下代码未生成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?

1 个答案:

答案 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>