nested model에 대해 extjs는 hasMany라는 configs를 제공한다.
json을 예로들지만, xml이되든 단순히 중첩된 데이터의 표현이든 상관없다.
/* Parent.js */
Ext.define('App.model.Parent', {
extend : 'Ext.data.Model',
alias : 'model.parent',
requires : 'App.model.Child', //부모가될 모델에서 자식모델을 포함시켜준다.
//자식도 requires를 해버리면 스택이 넘쳐버리도록 계속 서로참조한다..
//중요한건데, MVC모델로 작성하는 경우 꼭 Parent.js에서 참조해주어야한다.
//( MVC모델이 아닌경우엔 그냥 Ext.requires 에서만 하면 되려나? )
//이거 안해서 반나절을 삽질했다. 오류도 안띄워준다. 오류가 아니니깐 ㅎ
fields : [
{ name : 'Name' }
],
hasMany : {
model : 'App.model.Child', //모델은 되도록이면 풀네임을 써주도록.
name : 'childs', //중첩된 자식모델의 루트역할을한다.
associationKey : 'childs' //사실 이건 왜넣는지 모르겠지만,,
//난 그냥 습관적으로 name과 같은값으로 주고있다.
//이게 뭘 의미하시는지 아시는분?
},
proxy : {
type : 'ajax',
url : './data/family_data.json',
headers : {
'Accept' : 'application/json'
},
reader : {
type : 'json',
root : 'parents',
totalProperty : 'count'
}
}
});
'Coding Note' 카테고리의 다른 글
[Design pattern] Observer (4) | 2013.01.22 |
---|---|
[Design pattern] Strategy (0) | 2013.01.19 |
[MFC] MDI에서 child view 접근 (0) | 2012.10.17 |
[MFC] Changing MDI child document's title (0) | 2012.10.08 |
[MFC] CDockablePane에 CFormView 올리기 (1) | 2012.09.27 |