具有下划线的骨架

时间:2015-04-03 07:58:26

标签: backbone.js underscore.js

我使用了主干js和追加函数来显示一个值的输出,这是我以前的工作代码(简而言之)。以下代码只是为了让您了解代码是否正常工作。

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>

输出  Hello [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

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

[
    {
    "sourceName": "Apple"

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

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

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

    }
]

我尝试了每个功能,但我得到的值没有定义。未捕获的ReferenceError:未定义值

如何填充我的sourceName。

2 个答案:

答案 0 :(得分:0)

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

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

                    </script>

这提供了所需的输出。

答案 1 :(得分:0)

您可以在模板中执行以下操作:

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