2011-05-20 120 views
2

在我的应用程序中,我有几个tagList,每个包含几个tags分组由index_name如何使用Backbone.js处理嵌套视图?

我很遗憾应该如何处理Backbone视图。

我有一个TagListView延伸Backbone.View,我想我会处理所有这个视图的事件。

我的主要问题我应该创建一个TagView与渲染功能,将创建&为每个标记呈现在TagListView渲染功能?


以下是我在我看来,到目前为止做的:(这是正确的初始化?!)

<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; 
     } 

    }); 

非常感谢。

回答

4

我会说是的,个人“项目”视图可以单独重新呈现的好处是,如果您对此类项目后面的模型进行了更改,则只有该项目需要重新呈现浏览器。这对性能来说是最好的。

2

这里似乎是一个粒度问题,有时我会问自己一个问题。我的建议是不要过度地表达意见。这类似于为java中的所有东西创建对象 - 有时候一个简单的字符串就足够了。如果您发现未来会增加粒度的情况,您可以随时回来改变它。