2013-03-25 35 views
1

我使用backbone.boilerplate创建一个简单的应用程序。实现骨干列表应用的最佳方式

我想创建可以显示网站集合的模块。每个网站都有编号和标题属性(例如[{ id: 1, title: "github.com" }, { id: 2, title: "facebook.com" }]

我的路由器:

routes: { 
    "": "index", 
    "sites": "sites" 
}, 

sites: function() { 
    require(['modules/sites'], function (Sites) { 
    var layout = new Sites.Views.Layout(); 
    app.layout.setView('#content', layout); 
    }); 
} 

所以,我的网站模块的布局,这样做:

Sites.Views.Layout = Backbone.Layout.extend({ 
    template: "sites/layout", 
    className: 'container-fluid', 

    initialize: function() { 
    _.bindAll(this); 

    this.collection = new Sites.Collections.Sites(); 
    this.collection.fetch({ 
     success: this.render 
    }); 
    }, 

    beforeRender: function() { 
    var siteList = new Sites.Views.SiteList({ 
     collection: this.collection 
    }); 

    this.setView('.content', siteList); 
    }, 
}); 

Sites.Views.SiteList = Backbone.View.extend({ 
    template: 'sites/list', 

    beforeRender: function() { 
    this.collection.each(function (model) { 
     var view = new Sites.Views.SiteItem({ 
     model: model 
     }); 
     this.insertView('tbody', view); 
    }, this); 
    } 
}); 

Sites.Views.SiteItem = Backbone.View.extend({ 
    template: 'sites/item', 
    tagName: 'tr', 

    serialize: function() { 
    return { 
     title: this.model.get('title') 
    }; 
    } 
}); 

OK,现在我的问题:帮助我请选择最好的方式来呈现一个网站视图,当用户点击收藏的元素时,我希望它是像gmail一样的工作:一个屏幕的所有字母和所有屏幕上的一个字母,当它选择。类似应用程序的示例。我正在等待您的广告恶习。

+0

这几乎相当于“请建筑师一个令人难以置信的广泛问题我的网站“(或者”请向我解释如何构建一个主要的骨干网站“)。无论哪种方式,具有广泛性质的问题都不适合堆栈溢出;我认为你会有更好的运气:A)阅读一些Backbone教程或文章,或者B)在这里提出更具体的问题。 – machineghost 2013-03-25 21:49:32

+0

好的,我理解你。我不希望你做我的工作,并创建网站,而不是我=)我只是想了解如何工作。 这是我的变体,也许你可以看到它并告诉我你对这个想法有什么看法? thx你 http://pastebin.com/VvPcPnQX – user1666362 2013-03-27 11:47:20

回答

0

看着你的pastebin代码,好像你对Backbone有一个基本的了解,这当然是你开始使用的所有东西。

这就是说,你可能会发现这篇文章/教程有帮助。它走过楼间连接的观点(在它们与<select>元素教程),它使用AJAX的过程来更新他们的价值观:

http://blog.shinetech.com/2011/07/25/cascading-select-boxes-with-backbone-js/

+0

好的,谢谢:) – user1666362 2013-03-28 09:43:38

+0

这是非常有用的文章。我会尝试将其转换为俄语,并将其发布到habrahabr.ru 但首先我尝试重写我的模块=) – user1666362 2013-03-28 10:50:33