0

내 코드의 다른 부분에서 "page : change : after"이벤트가 발생하면 Marionette Itemview를 다시 렌더링하려고합니다. 나는 두 가지 방법으로 그 일을 시도 : 어떤 이유백본 마리오네트 렌더링

1.

self.listenTo(this.paginatedCollection,"page:change:after",function(){ 
     console.log("page:change:after detected!!!!!!!!!!!!!!!!!!"); 

     self.render; 
    }); 

2.

this.listenTo(this.paginatedCollection,"page:change:after",self.render); 

, # 2 작동하지만 # 1. # 1 콜백의 콘솔 로그가 실행되었습니다 (콘솔에서 "page : change : after detected"를 볼 수 있음). 나는 또한 "onRender!"를 출력하는 onRender 메서드를 추가했습니다. 내가 # 2를 사용했지만 # 1을 사용하지 않았을 때. 보기가 # 1로 렌더링되지 않은 것처럼 보입니다. 누군가이 행동에 대한 통찰력을 제공 할 수 있습니까? 여기

더 나은 환경 제공하는보다 완전한 코드이다 : 당신이 방법을 실행하지 않는 첫 번째 예에서

Views.PaginationControls = Marionette.ItemView.extend({ 
     template: "#contact-paginator", 

     initialize: function(options){ 

      var self = this; 
      this.paginatedCollection = options.paginatedCollection; 

      //why is this not working? 
      self.listenTo(this.paginatedCollection,"page:change:after",function(){ 
       console.log("page:change:after detected!!!!!!!!!!!!!!!!!!"); 

       self.render; 
      }); 



      //this works 
      this.listenTo(this.paginatedCollection,"page:change:after",self.render); 
     }, 

     onRender: function(){ 
      console.log("onRender!") 
     } 

}); 

답변

0

을 - self.render ('이어야 함)'-이 루트 의심 당신을

this.listenTo(this.paginatedCollection,"page:change:after",this.render);

+0

예 :이 일을하고 당신이 모두 자기를 제거 할 수 있기 때문에, 아마 청소기 것이라고 생각 - 말했다 문제

의 절대적으로 옳다. 나는 그것을 어떻게 볼 수 없었을 까! 고맙습니다. – nsxtasy

관련 문제