[英]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>
這將在集合中打印模型列表,假設您的模型具有id
和name
屬性。
另一個更“骨干式”的方法是為集合中的每個模型創建一個新視圖,類似於本教程中的todo項目: http : //arturadib.com/hello-backbonejs/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.