2017-05-03 9 views
1

Backbone.js를 사용하여 리치 클라이언트 애플리케이션을 개발 중이며 세 개의 데이터베이스 테이블에서 3 개의 값을 가져와 표시해야하는 상황이 발생했습니다.비 모델 데이터베이스 가져 오기를 구조적으로 배치 할 위치는 어디입니까?

그러나 내 모델에 포함되어 있지 않으므로 동기화 할 필요가 없습니다. 그들은 단지 전시 목적으로 만 사용됩니다. render() 메소드의 일부로 DOM에 추가하는 하위 뷰를 작성해야합니까? 나는 jQuery 코드를 함께 해킹하는 것을 선호하지 않을 것이다.하지만 백본 모델과 뷰에 대한 나의 정신적 인 그림에 잘 들어 맞지 않는 것처럼 보인다.

+0

3 개의 값은 관련되어 있습니까? 그들은 통계입니까? 모든 페이지에 표시됩니까? –

+1

@EmileBergeron 관련성이 있습니다. 그것들은 일부 천연 자원에 대한 현물 가격입니다. 그리고 그것들은 모두 같은 페이지에 표시됩니다. –

+1

@Notamachine 그렇다면 관련 가치를 지닌 모델을 가지고있는 것이 잘못 되었습니까? –

답변

0

백본과 같은 MVC의 경험 법칙은 데이터 구조가 항상 모델 계층에 저장되어야한다는 것입니다. 귀하의 경우에는이 중 (권장) 그 UI 상태와 관련된 속성을 가진 현재의 모델을 확장 을 의미하거나 새 모델을 생성하고 옵션으로 뷰에 전달할 수 : 나중에 당신이 할 수있는 뷰에서

var myModel = new MyModel(); 
var newModel = new NewModel(); 

var myView = new View({ 
    model: myModel, 
    newModel: newModel 
}); 

newModel에 대한 액세스는 다음과 같습니다. this.options.newModel

+0

백본은 MVC가 아닙니다 –

+0

@TJ이 문장에 동의하고 동의하지 않습니다 :) – Laszlo

+0

@foo 세 가지 데이터 값은 세 개의 다른 데이터베이스 테이블에 있으며, 내 눈을 가늘게 보면 상상할 수 있습니다. 그것들은 하나의 모델로서 - 매우 느슨하게 연결되어있다. 모델을 사용하지 않고 뷰를 통해 표시하지 않을 이유가 있습니까? 다중 탭 마법사를 구축하고 있으며 이러한 데이터 값은 무엇보다 정보가 풍부합니다. –