2013-04-12 3 views
1

이것은 아키텍처 관련 질문입니다. 하나의 모델이 있고 N 개의 뷰가 바인딩되어있을 수도 있고 그렇지 않을 수도 있다고 가정 해 봅시다. 모든 뷰가 변경되도록이 모델을 어떻게 변경합니까? 나는 이것을위한 어떤 디자인 패턴이 있어야한다고 생각합니다. 내 백본 모델에 일련의 뷰가 있고 단순히 배열을 거쳐 뷰의 이름을 이벤트로 트리거하는 기능이 있다고 생각했습니다.다중보기가있는 하나의 백본 모델 등록

이 작업을 수행하는 방법입니까? 어떤 패턴을 사용할 수 있습니까? 이런 식으로 어떻게 설계해야합니까?

+0

:

documentation of Views이의 좋은 예있다. – Jack

답변

2

MVC의 관심사를 유지하기 위해 모델이 제시 한 뷰를 인식하지 않아야합니다. events에있는 문서를 읽으십시오. 자신의 견해가 change 이벤트를 경청하고 그에 따라 스스로 업데이트 할 수 있습니다. 모델에 관련 이벤트에 대한 귀하의 의견 바인딩

var DocumentRow = Backbone.View.extend({ 

    tagName: "li", 

    className: "document-row", 

    events: { 
    "click .icon":   "open", 
    "click .button.edit": "openEditDialog", 
    "click .button.delete": "destroy" 
    }, 

    initialize: function() { 
    this.listenTo(this.model, "change", this.render); 
    } 

    render: function() { 
    ... 
    } 

}); 
+0

아픈. 고마워요! – praks5432

+0

당신을 진심으로 환영합니다. 백본 인 awesomeness에 대해 Jeremy Ashkenas에게 감사드립니다! –