2013-04-14 3 views
0

작동하지 않습니다. 뷰가 확실히 발견되어 foo.events가 올바른 이벤트를 반환합니다. 내 하위보기를 삽입하는 여러 가지 방법을 시도했다, 그냥 delegateEvents 그것을하지 않습니다.백본의 레이아웃의 delegateEvents는 내가 가지고있는 것은 다음과 같다

다른 사람이이 문제에 뛰어 들어 어떤 통찰력도 제공 할 수 있습니까?

하위보기에서 events 속성과 this.listenTo를 모두 사용하고 있음을 언급해야합니다. 그들 중 누구도 해고 중입니다.

편집 : 부모와 같은 다른 뷰에 추가되는 : parentViewViews.Parent의 객체 인스턴스 this.$el.append(parentView.$el);

.

+0

Views.Child는 어떤 모습입니까? – domino

+0

게시물을 업데이트했습니다. 그것은 명확하게하기 위해 실제로 실행중인 코드의 단순화 된 버전입니다. – aef

+0

'this.listenTo (model, "change", this.render);'' "model"'은 문자열이 아니어야합니다. – domino

답변

1

this.$el.htmlafterRender (으)로 호출하면 현재 HTML보기 및 모든 바운드 이벤트/하위보기를 덮어 쓰게됩니다. 마찬가지로, 당신은 beforeRender에서 설정 한 하위보기를 제거합니다.

그래서 이벤트가 발생하지 않습니다.

코드를 구성하는 방법에 대해 더 자세히 알고 싶습니다 ... afterRender에서 무엇을하려하는지 이해할 수 없지만 전혀 이해가 가지 않습니다. fetchrender 구성 옵션 내에서 afterRender이 아닌 모든 템플릿 코드를 컴파일하십시오.

빠른 참고 :
beforeRender : 당신이 jQuery를 등 플러그인, 당신은 여기에 DOM에 접촉하지 않아야을 이벤트를 바인딩 또는 시작 : 당신은 아이가
afterRender를 볼 설정합니다.

+0

당신이 그것을 못 박았습니다. layoutmanager를 잘못 사용했습니다. LayoutManager.fetch에 대한 핸들 바를 리팩토링하고 serialize를 사용하여 컨텍스트를 전달할 수있었습니다. 도움을 많이 주셔서 감사합니다. – aef

+0

즐거움, 행운을 빌어 요. BTW, 더 많은 개념에 대해 토론하고 싶다면 # 백본 보일러 플레이트 IRC 채널에서 자유롭게 뛰어 들어보십시오. –

관련 문제