2012-05-17 2 views
12

DOM의 섹션을 조작 할 때 Backbone.view, 유성 및 핸들 막대의 겹침 기능이있는 것 같습니다. Backbone을 사용한다고 가정되는 ToDo 앱을 살펴 보았지만 실제로는 라우터 만 사용합니다.유성 뷰 핸들러 템플릿에 백본 뷰를 연결하는 방법은 무엇입니까?

백본보기도 템플릿을 처리하지만 ... 유성 템플릿과는 너무 다른 소리를냅니다. 게다가 모델 백본에서 유추 & 유변을 업데이트 할 수 있습니다.

괜찮습니까? 누가 뭘하니?

백본은 유성 앱에 정말 유용합니까? 백본 가능 & 핸들 막대가 공존 할 수 있습니까? 그리고 Meteor 컨텍스트에서 백본보기를 핸들 막대 템플릿에 연결하는 방법은 있습니까?

EDIT : todo-backbone 예제를 찾았습니다.

  • 유성 + 백본 + 템플릿을 강조
  • 나 ... 유성 + 핸들

유성 백본 + 핸들 +가 가능한처럼 보이지 않는다 : 당신이 중 하나를 갈 수 있음을 확인하는 것 옵션 ...

답변

13

그것은 매우 쉽게되지 않으며 밑줄 템플릿을 사용하여보다 더 많은 작업을 주셔서 감사합니다. 여기에 예를 들어 .html 파일입니다 :

<template name="user_list"> 
<ul> 
    {{#each users}} 
    <li>{{name}}</li> 
    {{/each}} 
</ul> 
</template> 

그리고 여기 예제가 된 .js 파일 :

당신이 당신처럼 UserView을 표시 할 때 다음 관리하는 라우터 나 다른보기를 사용할 수 있습니다
Users = new Meteor.collection("users"); 

if (Meteor.is_client) { 
    Template.user_list.users = function() { 
    return Users.find(); 
    } 

    window.UserView = Backbone.View.extend({ 
    initialize: function() { 
     _.bindAll(this, 'render'); 
    }, 
    template: function() { 
     Meteor.ui.render(function() { 
     return Template.user_list(); 
     }); 
    }, 
    render: function() { 
     $(el).empty().append(this.template()); 
    } 
    }); 
} 

다른 Backbone.js 앱에서도 마찬가지입니다.

핵심은 Meteor.ui.render 또는 다른 Meteor.ui 메소드를 사용하여 HTML을 렌더링하여 반응성이 있도록하는 것입니다.

+0

감사합니다. 무리 @Aaron –

+1

왜 유령의 일부로 백본을 가져 왔는지 궁금합니다. 매우 혼란 스럽습니다. BB와 M은 많은 기능을 공유합니다. 위의 예에서 BB.model을 어떻게 사용할 수 있습니까? 여전히 M.collection으로 보입니까? –

+9

Meteor의 모델은 Backbone의 반응성과 클라이언트 간의 완벽한 동기화를 제공하는 것보다 훨씬 더 많은 기능을 갖추고 있습니다. 반면 Backbone의 모델 및 컬렉션 개념은 대부분 호출을 서버로 다시 구성한 다음 이벤트 기반 설계자에게 템플리트 방식으로 제공하는 방법입니다 시스템. Meteor 컬렉션과 모델을 Backbone에 추가 할 수는 있지만, 반대하는 것이 좋습니다. 대신 Meteor를 사용하는 방식대로 사용하십시오. – Aaron