簡體   English   中英

骨干Json視圖模板

[英]Backbone Json view template

我現在正試圖讓我的頭圍繞骨干。

所以我有模型,加載JSON文件與集合,但我無法指出在視圖中顯示陣列到下划線模板的最佳方式。

我很累,似乎經歷了很多教程,都有不同的方式通過視圖輸出這些數據到模板。 這樣做有正確的方法嗎? 我猜它應該用_.each循環? 我甚至在正確的道路上? ;)

請參閱下面的代碼。

非常感謝

<head>




</head>
<body>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone.js"></script>


    <script type="text/javascript">

        var News = Backbone.Model.extend();

        var Newscollection = Backbone.Collection.extend({
            model: News,
            url: 'data.js'
        });

        var NewView = Backbone.View.extend({
            el: '#News',
            template: _.template($("#NewsTemplate").html()),

            render: function() {
                $(this.el).html(this.template(this.model.toJSON()));
                return this;
            }
        });


    </script>


    <div id="News"></div>


    <script id="NewsTemplate" type="text/template">
        <%= title %>
    </script>

</body>

如果您想將集合傳遞給模板,可以執行以下操作:

1:在視圖中定義新集合。 在您的收藏中添加一些模型。 我們將它定義為this.collection ,我們假設在渲染時集合中有多個模型。

2:將對象傳遞到模板中。 使用'collection'作為鍵和JSON化的集合(模型數組)作為值來創建一個對象:

$(this.el).html(this.template({'collection': this.collection.toJSON()}));

3:現在,在模板中,我們可以使用<%= collection %>來引用該集合。 但是,我認為您想循環遍歷集合以呈現值。 在HTML模板中,您可以使用下划線的_.each創建循環:

    <ul>
    <% _.each(collection, function(item) { %>
        <li> <%= item.id %> : <%= item.title %> </li>
    <% }); %>
    </ul>

這將在集合中打印模型列表,假設您的模型具有idname屬性。

另一個更“骨干式”的方法是為集合中的每個模型創建一個新視圖,類似於本教程中的todo項目: http//arturadib.com/hello-backbonejs/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM