2013-04-11 3 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

사이드 노트 : 백본의보기를 비어있는 개체로 확장하여 왜 _.extend를 나중에 사용하는 이유가 무엇입니까? – Loamhoof

+0

그래서 backbone.view의 속성을 사용하고 내 자신을 추가 할 수 있습니다. 그런 다음 모든 수업에 '섹션'이 포함되도록 클래스를 확장 할 수 있습니다. – Sullify

+0

Nvm, 내가하는 말을 듣는다. 초기 확장에 물건을 추가 할 수 있습니다. – Sullify

답변

2

이것은 마리오 네트의 레이아웃보기 및 영역과 매우 비슷합니다. 직접 작성하지 않아도됩니다. 나는 종종 레이아웃, 지역 및 응용 프로그램 및 모듈 부분없이 마리오네트에서 특수 뷰를 사용합니다.

+0

감사합니다. – Sullify

+0

나는 조금만 읽고 있었다. 나는이 길로 갈거야. 그것은 내 애플 리케이션에 몇 가지 재 작업이 필요할 수 있습니다,하지만 내가 필요한 모든 것을 않습니다. 검도 UI 템플릿을 사용하고 렌더러를 재정의하는 방법을 좋아합니다. 내가 시작했을 때 개념적으로 준비가되어있는 것이 아니기 때문에 마리오 네트 모듈도 중요 할 것입니다. 나를 놀라게하는 것은, 나는이 일의 대부분을 나 자신으로하고있다. 어쨌든 Derick Bailey의 팬이라고 나에게 말했기 때문에 다행스럽게 생각합니다. – Sullify

+0

나는 당신이 말하는 것을 확실히 얻었습니다. 나는 같은 프로젝트를 여러 프로젝트에서 반복해서 썼다. 나는 Justin Searls backbone-fixins도 몇 번 사용했다. https://github.com/testdouble/backbone-fixins하지만, 마리오네트가 기본 클래스와 믹스 인을위한 좋은 출발점임을 알게되었습니다. –