2012-10-28 2 views
0

저는 이것에 익숙하지 않으므로 나와 함께하시기 바랍니다. 항목보기를 다른 항목보기에 추가하려고하지만 중첩 된보기 항목의 렌더링 방법이 지연된 개체를 반환합니다. 여기 Backbone.marionette 중첩 된 ItemView가 el 대신에 지연 반환 됨

코드입니다 :

(function (ns, _, $, Backbone) { 

/////////////////////////////////////////////////////////////////////////////////////// 
// Signup state 
/////////////////////////////////////////////////////////////////////////////////////// 

var SignUp = Backbone.Marionette.ItemView.extend({ 
    template : "#signup-tmpl", 
    events : { 
     'click .signup' : 'signup' 
    }, 

    signup : function() { 
     console.log('signup clicked'); 
     ns.app.layout.app.show(ns.views.register); 
    }, 
    onRender : function() { 
     console.log('On render', this.el); 

     var user = ns.views.user.render(); 
     // user returns an a deferred object 
     // so the code below does not work 

     this.$el.find('#user').html(test.el); 


    } 
}); 

ns.views.signup = new SignUp(); 

}(H5, _, $, Backbone)); 

나는 독서의 비트를했고, 내가 찾은 수정 뷰를 렌더링하지만 잡아되었다 엘 속성 (Backbone.Marionette nested ItemView either not rendering or rendering "blank" view/template) afterwords입니다. 문제는 "사용자"가 대신 지연된 개체를 반환한다는 것입니다.

여기에 무슨 일이 벌어지고 있는지에 대한 아이디어가 있습니까?

답변

1

Marionette.Async를 사용하고 계십니까? 비동기 적으로 완료되는 템플릿, 데이터 및 렌더링으로 비동기가 작동하는 방식을 용이하게하려면 렌더링에서 지연된 개체를 반환해야합니다.

렌더링을 렌더링 할 수있는 유일한 방법은 Marionette.Async 및 FWIW를 사용하지 않는 것입니다.이 솔루션을 사용하는 것이 좋습니다. 비동기는 뷰에서 직접 수행하면 안됩니다 (IMO). 뷰 구현 위에서 하나 이상의 추상 단계에서 앱 워크 플로에 의해 처리되어야합니다.

+1

야, 너 생명의 은인이야! 나는 튜토리얼에서 번들 된 marionette.js 버전을 사용하고 있었고 Marionette.Async와 함께 제공되었습니다. 나는이 backbone.marionette 파일을 git repo의 파일로 바꿨고 이제 모든 것이 제대로 작동합니다. 건배! –

+0

이제는 사용되지 않습니다 .--( –

관련 문제