带下划线的 backbonejs

backbonejs with underscorejs

我使用 backbone js 和 append 函数来显示一个值的输出,这是我以前的工作代码(简而言之)。下面的代码只是为了让您知道代码正在运行。

this.$el.append('<li class="linkbackbreadcrumbs">'+model.get('sourceName')+'</li>');}

现在我需要使用下划线js将数据传递给模板,并且需要在那里填充数据。

从视图

Backbone.View.extend({
                    el: $('#secondBoxList'),
                    initialize: function(){
                        this.render();
                    },
                    template: _.template($("#item-template").html()),
                    render: function(eventName) {
                         this.$el.html(this.template({who: this.collection.toJSON()}));
                      }
        });

用于测试目的 这很好用。

        <script type="text/template" id="item-template">
          <h3>Hello <%= who %></h3>
         </script>

输出 你好 [对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象]

我希望它显示 sourceName 并检查 sourceName 是否存在我应该跳过。示例 json 如下。

[
    {
    "sourceName": "Apple"

    },
    {
    "sourceName": "Windows"
    },
    {
    "sourceName": "Ubunut"

    },
    {
    "sourceName": "Linux Mint"
    },
    {
    "sourceName": "Fedora"

    },
    {
    "sourceName": "Windows"
    },
    {
    "sourceName": "Dummy"

    }
]

我尝试了每个函数,但得到的值未定义。未捕获的 ReferenceError:未定义值

如何填充我的 sourceName。

    <script type="text/template" id="item-template">

                              <% for(var name in who) { %>
                                       <li><%= who[name].sourceName %></li>
                                   <% } %>

                    </script>

这提供了所需的输出。

您可以在模板中做这样的事情:

<script type="text/template" id="item-template">
    <% _.each(who,function(item))      
    <h3>Hello <%= item.sourceName %></h3>
 </script>