2012-03-27 3 views
3

저는 Backbone.js를 사용하여 Wordpress (super rad JSON API 플러그인 사용)와 프런트 엔드 간의 중개자 역할을했습니다.Backbone.js로 YouTube보기를 얻는 중

각 Wordpress 게시물에는 YouTube 비디오 ID가 첨부되어 있으며 컬렉션을 가져올 때 뒤로 당겨집니다.

전체 비디오보기를 얻으려면 비디오 ID를 분석하고 구문 분석하려면 응용 프로그램 내에서 가장 좋은 점을 찾으려합니다.

이 컬렉션 모델을 가져 오는되는 코드입니다 :

parse: function(response) { 
    return response.posts; 
} 

그리고 다음 코드는 적절한 뷰를 렌더링합니다.

this.getCollection().each(function(model) { 
    var view = new App.Thumbnail.View({model: model}); 
    var item = $(view.render().el); 
    this.container.append(item); 
}); 

이 과정에서 어느 시점에서 비디오 카운트를 할당하려면 미리보기 이미지가 필요합니다.

function getYoutubeViewCount(videoID) { 
    $.ajax({ 
    url: "http://gdata.youtube.com/feeds/api/videos/" + videoID + "?v=2&alt=json", 
    dataType: "jsonp", 
    success: function (data) { console.log(data.entry.yt$statistics.viewCount); } 
    }); 
} 

그래서 내 질문은, 어디 뷰 수를 가져올 수있는 가장 좋은 장소입니다 생각한다 :이 YouTube 조회수를 잡는 내가 가지고있는 코드? 카운트를 가져 오는 하위 모델을 만들어야합니까? 아니면 백본의 외부에서해라 .js?

도움이 되시면 도움이 될 것입니다.

미리 감사드립니다. Charlie.

답변

1

viewCount은 비디오 모델 하위 클래스의 속성이어야합니다. 모델을 인스턴스화하기 전에 동영상 용 Wordpress 데이터와 YouTube 카운트를 동시에로드하거나 YouTube 데이터를 가져 와서 늦게 적용하는 동안 WordPress의 데이터로 모델을 인스턴스화 할 수 있습니다. YouTube에서 조회수를 얻으면 해당 모델 인스턴스에서 set입니다. 자신의 뷰를 모델의 change:viewCount 이벤트에 바인딩하고이 데이터가로드되면 자체 렌더링 (또는 적어도 DOM의 적절한 요소에 뷰 카운트 이동)합니다.

언제 이렇게 할 것인가? 기본 비디오 모델 인스턴스를 만들고 Wordpress 데이터 소스의 기본 속성으로 채우 자마자 백그라운드에서 뷰 카운트를 가져 오기 시작해야합니다. 또는 비디오를 재생하거나 뷰포트로 스크롤하거나 마우스를 올렸을 때 느리게 뷰 개수를로드하도록 선택할 수 있습니다.

관련 문제