2014-07-22 2 views
0

userdetail 백본보기 및 템플릿이 있습니다. 샘플 코드는백본의 부모 메서드 상속 및 확장

define(
     ['framework/baseclass'], 

     function(baseclass) { 
      var UserDetails = myModule(); 

      UserDetails.Model = Backbone.Model.extend({ 
        // 
      }); 

      UserDetails.Views.Content = Backbone.View 
        .extend({ 
         template : "UserDetails", 

         initialize : function() { 
          //model 
         }, 

         events : { 

         }, 


         render : function(manage) { 

         }, 

         renderOnceDomIsReady : function() { 
          createUserDetailPage(); 
         }, 

         createUserDetailPage: function(){ 
          //use the html template and populate with data and additional look and feel 
         } 
        }, 

         addNewUser: function() 
         { 
         }, 
        }); 


     }); 

입니다. 사용자가 계정을 만들기 위해 세부 정보를 입력하면 해당보기가 표시됩니다.

내가보기 'userdetail'오버라이드 (override)에서 이벤트를했을 HTML 템플릿에서 몇 가지 추가 요소를 가지고뿐만 아니라 사용자 계정 세부 정보를 표시, 나는 userdetail보기를 관리 사용자를 보여주고 싶은 것을 특징으로 관리자보기를

사용자 세부 템플릿에는 관리자가 아닌 사용자에게 계정 기능이 표시되지 않지만 관리 사용자는 관리자보기를 통해이 기능을 볼 때 해당 기능을 볼 수 있습니다.

원래 코드에 비 관리자 계정과 관리 계정을 구분하고 그 정보를 기반으로 기능을 표시하는 것이 좋을지도 모릅니다. 그러나 나는 그러한 코드 변경을 막을 수있는 제한이있다.

. 따라서 기존 코드를 유지하는이 원정은 코드를 끝내고 상속하는 방법을 살펴보고 추가 된 기능을 제공합니다.

+0

예 그 중 하나 또는 중첩 된 뷰는 상위 뷰 버튼 클릭과 같은 이벤트에 가능합니다. 중첩 된보기를 위해 작동하는 github 플러그인을 발견하고이를 승인하기 위해 팀장이 기다리는 것을 보았습니다. – user3865642

+0

이것은 내가 읽은 한 기사였습니다. http://www.joezimjs.com/javascript/backbone-js-subview-rendering-trick/ – user3865642

답변

0

다른 뷰에서 상속 한 뷰를 만들려면 상위 뷰를 확장해야합니다. 부모 메소드를 호출하려면 프로토 타입을 사용하여 수행 할 수 있습니다. 예를 들어

UserDetails.Views.AdminContent = UserDetails.Views.Content.extend({ 

     template:'AdminDetails' //this will override the parent template property 


     events: _.extend({ 
      //add new events here 

     }, UserDetails.Views.Content.prototype.events), 

     initialize : function(options) { 
       //model 
       UserDetails.Views.Content.prototype.call(this,options); 
     } 
}); 
+0

이것은 사악합니다. 백본에 멍청한 녀석입니다. 궁금하다면 div 내에서 부모보기를로드 한 다음 버튼 클릭시 div를 활성화 할 수 있습니다. – user3865642

+0

해당 작업을 수행 할 수 있어야합니다. 정확히 무엇을하고 싶은지 확실하지 않지만 특정 용도에 대해 부모의 render 메서드를 호출하여 수행 할 수 있습니다. div. – Jack

+0

admin 페이지에는 '사용자 정보 표시'버튼이 있습니다.이 버튼을 클릭하면 userdetailview를 표시하고 버튼을 사용하면 div가 표시되고 userdetail보기는 해당 div에 표시됩니다. – user3865642