javascript - 使用 underscore.js 时 innerHTML 'each function' 与 js 文件 'each function'

标签 javascript backbone.js underscore.js underscore.js-templating backbone.js-collections

我想使用 underscore.js 获取数组。

这是我的案例。

view.js

views.list = Backbone.View.extend({
      render: function(templateName) {
        var template = _.template(templateName);
        this.$el.html(template({result : this.collection.models}));
        _.each(this.collection.models, function(model){
          console.log(model.get("id"));
        });
        return this;
      }
    });

运行结果 _.each(this.collection.models, function(model){console.log(model.get("id"));});

enter image description here

list.html

<div id="columns">
      <% _.each(result, function(model){ %>
        <div id="<% model.get("id") %>" class="content">
          <a href="<% model.get("url") %>">
            <figure>
              <img src="<% model.get("imgSrc") %>">
              <figcaption><% model.get("title") %></figcaption>
            </figure>
        </div>
      <% }); %>
      </div>

enter image description here

我向this.collection.model发送了一个参数作为result参数,所以我认为上面的可执行代码和我用html写的可执行代码是一样的,但是运行结果不一样。

有什么区别?

最佳答案

您需要在模板中使用输出值的表达式。而不是

<div id="<% model.get("id") %>" class="content">

你需要:

<div id="<%- model.get("id") %>" class="content">

参见 docs

关于javascript - 使用 underscore.js 时 innerHTML 'each function' 与 js 文件 'each function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42488958/

相关文章:

javascript - jquery如何在最短时间内修改大表的行数?

Javascript/浏览器加密 : Use Yubikey

javascript - 如何从商店中的模型中删除validationError?

javascript - 为什么lodash运行backbone.js和underscore.js的测试套件?

javascript - 这个 jquery 选择器不工作,我做错了什么?

backbone.js - 在 backbone.js 中扩展 View 时添加事件处理程序?

javascript - 从事件回调中引用包含主干 View ?

javascript - 从头开始从 _underscore.js 编码查找

javascript - context 参数在 underscore.js 中有什么作用?

javascript - jQuery Select2 - 通过数据属性获取最大可选值