2013-05-25 34 views
1

我的应用程序中的许多视图都需要“可折叠”。对用户来说,这意味着您可以单击箭头折叠或展开视图的内容。如何在每个视图上运行相同的设置功能?

创建视图时,我需要能够轻松地说出“此视图应该可折叠”,然后运行相应的设置代码(这意味着将.collapsible类添加到视图的包装并插入一个dom元素看起来是这样的:就如何<div class="toggle"></div>

建议无缝地退出这个功能目前我使用的骨干,Backbone.Marionette,并强调

我这样做与不使用主干另一个应用程序在?。该应用程序的每个操作都会导致页面刷新,因此我只是使用jQuery来查找.collapsible类中的所有元素,然后执行我的操作这样设置。

编辑:

我使用Backbone.Marionette.CompositeView这些特定的观点,有没有什么帮助。

回答

1

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

0

您可以创建父视图,该视图从Marionettes 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 
相关问题