【发布时间】:2014-03-08 14:59:43
【问题描述】:
我目前正在与骨干一起工作,但我有一个疑问,或者可能是一个毫无意义的问题。
基本上,我想做一个基于类别的文章列表。
所以,我开始定义我的路线,没问题。
所以,我有这样的事情:
var appRouter = Backbone.Router.extend({
routes: {
'': 'home',
'products': 'showProducts',
}
});
我想要的基本上是,当用户点击某个类别时,我只想更新下面的产品列表,而不是我的全部视图。当然,我可以在视图内部做一些事情,检测选择了什么类别,然后只用这些产品更新我的内容。
但我认为,我更喜欢我的应用根据我当前的路线做出反应。
所以,我想要的是这样的:
var appRouter = Backbone.Router.extend({
routes: {
': 'home',
'foo:bar',
'products/:category': 'showProducts',
},
home:function(){
this.close();
//render my home view
},
bar:function(){
this.close();
//render my bar view
},
showProducts:function(id){
this.close();
//render my products view
},
});
这很好用,但我想避免,我的 productsWrapperView 中带有类别列表的标题再次重新渲染...
所以,如果我当前的页面已经是产品视图,如果我选择了一个类别,
"<a href='/products/2'>,
我只想更新我的产品列表,而不是整个视图.. 有人知道一个好方法吗?
我的问题有意义吗?
【问题讨论】:
-
您应该强烈考虑为此使用 Marionette。它支持区域(和布局)。如果您不想使用木偶,请查看它如何实现区域和布局,这可能会有所帮助。另外,你读过这个:stackoverflow.com/questions/11477910/… 吗?
-
好吧,我已经阅读了有关木偶的文章,但必须是仅使用主干的其他方法来处理这种情况..