1

我的应用程序中的许多视图都需要“可折叠”。对于用户来说,这意味着您可以单击箭头来折叠或展开视图的内容。

创建视图时,我需要能够轻松地说“这个视图应该是可折叠的”,然后运行适当的设置代码(这实际上意味着将.collapsible类添加到视图的包装器并插入一个如下所示的 dom 元素:<div class="toggle"></div>

关于如何无缝实现这一点的建议?我目前正在使用 Backbone、Backbone.Marionette 和 Underscore。

我使用另一个不使用 Backbone 的应用程序来执行此操作。在该应用程序中,每个操作都会导致页面刷新,因此我只使用 jQuery 来查找包含.collapsible该类的所有元素并以这种方式进行设置。

编辑:

如果有帮助,我正在使用Backbone.Marionette.CompositeView这些特定视图。

4

2 回答 2

1

通过将此类功能提取到 mixins 中,我在我的项目中做了类似的事情。在 Backbone 中实现 mixin 有不同的方法。看看这里这里

于 2013-05-25T20:40:28.180 回答
0

您可以创建从 Marionette CompositeView 扩展的父视图并在其中添加您的通用功能,并让您的项目视图从该父视图扩展。

var CollapsibleView = Backbone.Marionette.CompositeView.extends({
   variable1: 1,
   var2: true,
   initialize : function() {
      // your code here
   },
   helperfunction : function () {
     // other helpful function
   }

});

var MySpecificView = CollapsibleView.extends({
mySpecificFunction : function () {
 // some specificView functionality
}


});

var myProjectView= new MySpecifcView();

 myProjectView.helperfunction(); /// function from the parent
 myProjectView.mySpecificFunction();  /// function from the specificView
                                            /// you also have the functionality added on the initialization of the collpasibleView
于 2013-05-25T21:11:14.947 回答