2014-09-06 1 views
0

, 나는 지역 같은이 내 지역을 추가 할Marionette throw Uncaught NoElError : 영역에 "el"을 지정해야합니다. " 내 응용 프로그램에서

define(['jquery','underscore','backbone','marionette'], 
    function ($,_,Backbone,Marionette) { 
    "use strict"; 
    socialApp = window.socialApp || {}; 

    socialApp.AppLayout = Backbone.Marionette.LayoutView.extend({ 
     template:'#appTemplate', 
     regions: { 
      header : '#header', 
      content : '#content', 
      footer : '#footer' 
    }, 
    initialize:function(){ 
      console.log('layout intialized'); 
    } 
    }); 

    return socialApp.AppLayout; 
}); 

나는이 같은 컨테이너 :

지금은 함수의 두 호출하고
define(['jquery','underscore','backbone','marionette'], 
    function ($,_,Backbone,Marionette) { 
    "use strict"; 
    socialApp = window.socialApp || {}; 

    socialApp.AppRegion = Backbone.Marionette.Region({ 
     el:'#wrapper', 
    initialize:function(){ 
     console.log('from wrapper'); 
    } 
    }); 

    return socialApp.AppRegion; 
}); 

:

socialApp.Layout = new appLayout(); //calling layout 
    socialApp.AppContainer = new appContainer; //calling container 
    socialApp.AppContainer.show(socialApp.Layout); //i am showing to container 

하지만 다음과 같은 오류가 표시됩니다.

Uncaught NoElError: An "el" must be specified for a region. 

이 문제를 해결하는 방법은 무엇입니까? 여기서 뭐가 잘못 됐어, 나 한테 어떤 그림이 나왔어?

여기에 추가 정보를 사전에

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'marionette', 
    './model/loginModel', 
    './views/loginView' 
    ],function ($,_,Backbone,Marionette,loginModel,loginView) { 
    "use strict"; 
    socialApp = window.socialApp || {}; 

    socialApp.loginController = Marionette.Controller.extend({ 
     _initialize:function(){ 
      console.log('initi') 
      this.loginView = new loginView({model:new loginModel}).render().el; 
      console.log(this.layout.header.show(this.loginView)); 
     } 
    }); 

    return socialApp.loginController; 
}); 

감사에 대한 내 컨트롤러입니다.

답변

1

나는 코드를 이해하고 이해하려고 노력하고 있지만 실제로는 어렵다. 여러분이 들여 쓰기를 수정하고 아마도 재정렬 작업을하고 무의미한 상용구 코드를 제거 할 수 있다면 도움이 될 것입니다.

var SocialApp = new Marionette.Application; 
SocialApp.addRegions({ root: '#wrapper' }); 

그런 다음 당신은 당신의 AppLayout보기를 만들 것이며, 해당 첨부 :

어쨌든, 난 당신 대신 당신이 만드는이 컨테이너 일의 직접 지역을 첨부 할 수있는, Marionette.Application을 사용하는 것이 좋습니다 것입니다 앱의 루트 영역 :