如何使用Backbone.js处理嵌套视图?

时间:2011-05-20 18:16:52

标签: javascript jquery view backbone.js

在我的应用中,我有一些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}}

非常感谢。

2 个答案:

答案 0 :(得分:4)

我会说是的,单个“项目”视图能够单独重新渲染的好处是,如果您对此类项目背后的模型进行更改,则只有该项目需要由该项目重新呈现浏览器。哪种方式最适合表现。

答案 1 :(得分:2)

这似乎是一个粒度问题,而且我偶尔会问自己。我的建议不是过度观点。它类似于在java中为所有东西创建对象 - 有时一个简单的字符串就足够了。如果您在将来发现粒度增加的情况,您可以随时返回并进行更改。