2013-04-11 1 views
2

Я пытаюсь расширить прокси-серверы, чтобы добавить базовую реализацию макета «скелет». Это будет использоваться, чтобы объединить страницу, используя различные компоненты. Проблема, указанная ниже, - это изменения области для всех элементов макета вложенных объектов. Могу ли я создать закрытие для всех из них, которые указывают на одну и ту же область, или я ограничен одним уровнем объектов? Может, я думаю об этом неправильно?Создание и определение базового представления для backbone.js

define(['backbone', 'underscore' 
], function (backbone, _) { 
    var base = backbone.View.extend({}); 

    _.extend(base.prototype, { 
     sections: { 
      head: {}, 
      body: { 
       nav: {}, 
       main: { 
        header: { 
         title: "", 
         description: "", 
         inner_html: function() { 
          return this.render().el 
         }, 
         menu_items: [], 
         changed: false, 
         scripts: function() { } 
        }, 
        content: { 
         title: "", 
         description: "", 
         inner_html: function() { 
          return this.render().el 
         }, 
         scripts: function() { } 
        }, 
        buttons: { 
         items: [], // { id: "save", value: "Save" }, { id: "edit", value: "Edit" } 
         changed: false, 
         scripts: function() { } 
        } 
       }, 
       footer: {} 
      } 
     } 
    }); 

    return base; 

}); 
+0

Боковое примечание: почему вы расширяете представление Backbone's с пустым объектом для использования _.extend прямо после этого? – Loamhoof

+0

Итак, я могу использовать свойства backbone.view, а затем добавить свои собственные. Затем я могу расширить свой класс, поэтому все мои взгляды будут иметь «разделы». – Sullify

+0

Nvm, я понимаю, что вы говорите. Я мог бы просто добавить свой материал в первую очередь. – Sullify

ответ

2

Это очень похоже на виды марионеток на макет и области. Возможно, вам не придется писать это самостоятельно. Я часто использую макет, регионы и специализированные виды из Marionette без частей приложения и модуля.

+0

Спасибо, я посмотрю. – Sullify

+0

Я немного читал. Я пойду с этим путем. Это может потребовать некоторой переделки в моем приложении, но оно делает все, что мне нужно. Я использую шаблоны kendo ui, и мне нравится, как я могу просто переопределить рендеринг. Модификации marionette также будут важны, поскольку я не был концептуально готов, когда начал. Меня это поразило, я сам делал большую часть этой работы; рендеринг событий (pubsub), просмотр и просмотр дочерних элементов, составные виды и коллекции, и т. д. Рад, что вы сказали мне, поклонник Derick Bailey в любом случае :) – Sullify

+0

Я определенно понимаю, что вы говорите. Я написал то же самое снова и снова в нескольких проектах. Я также использовал Justin Searls base-fixins несколько раз. https://github.com/testdouble/backbone-fixins Но, я нашел, что Marionette - хорошая отправная точка для базовых классов и моих собственных миксов. –