Здравствуйте, я пишу свое первой front-end прилодение с использованием фреймворка Marionette.js Сейчас у меня есть один модуль - BlogApp, в котором содержится 2 метода list (показать все посты) и show (показать пост по id):
@MainApp.module "BlogApplication", (BlogApplication, App, Backbone, Marionette, $, _) ->
class BlogApplication.Router extends Marionette.AppRouter
appRoutes:
"blog" : "list"
"posts/:id" : "showPost"
API =
list: ->
BlogApplication.List.Controller.list()
showPost: (id, post) ->
BlogApplication.Show.Controller.showPost id, post
App.addInitializer ->
new BlogApplication.Router
controller: API
App.vent.on "blog:post:clicked", (post) ->
App.navigate Routes.post_path(post.id)
API.showPost post.id, post
App.on "blog:list": ->
App.navigate("blog")
API.list()
Приложение имеет такой вид:
--blog
-blog_app.js
--list
--templates
-blog_sidebar.template
-blog_panel.template
-blog_layout.template
-blog_post.template
-list_controller.js
-list_view.js
--show
--templates
-blog_sidebar.template
-blog_panel.template
-blog_layout.template
-blog_post.template
-show_controller.js
-show_view.js
Все работает хорошо.
Однако сейчас у меня 2 контроллера и я дублирую шаблоны для `show` и `list` методов, что очевидно не хорошо. Можно перенести метод 'show' в `List.Controller` - тогда я смогу использовать те же шаблоны, но это сильно испортит архитектуру приложения, например когда придется добавлять функционал. К примеру - комментарии к посту, тэги и т.д. Как лучше представить эти 2 метода?