在我的应用中,我有一些tagList
,每个tags
包含一些按index_name
分组的TagListView
。
我迷失在如何使用Backbone视图处理它。
我有Backbone.View
扩展TagView
,我想我会用这个视图处理所有事件。
我的主要问题是:我应该创建一个TagListView
,其中包含一个可以创建的渲染函数&amp;为 <ul id="strategy-tags">
<!-- initial data -->
<script type="text/javascript">
AppData.strategyTagList = $.parseJSON('<?php echo json_encode($strategyTagList); ?>');
strategyTagListView = new App.TagListView({el : "#strategy-tags", data: AppData.strategyTagList});
</script>
</ul>
渲染函数中的每个标记呈现?
以下是我在目前的观点中所做的事情:(初始化可以吗?!)
core.js
在 App.TagListView = Backbone.View.extend({
// dom event specific to this item.
events: {
},
initialize: function(options) {
this.el = options.el;
},
render: function() {
// let's construct the tag list from input data
_.each(options.data, function(index) {
// render index? <-- how ?
_.each(index, function(tag) {
// render tag? <-- how ?
console.log(tag);
});
});
return this;
}
});
内:
{{1}}
非常感谢。
答案 0 :(得分:4)
我会说是的,单个“项目”视图能够单独重新渲染的好处是,如果您对此类项目背后的模型进行更改,则只有该项目需要由该项目重新呈现浏览器。哪种方式最适合表现。
答案 1 :(得分:2)
这似乎是一个粒度问题,而且我偶尔会问自己。我的建议不是过度观点。它类似于在java中为所有东西创建对象 - 有时一个简单的字符串就足够了。如果您在将来发现粒度增加的情况,您可以随时返回并进行更改。