2013-09-05 5 views
1

ExtJS 4.2 MVC : 두 모델의 ServiceM과 CommentsM이 있습니다. ServiceM에는 CommentsM과 hasmany가 연관되어 있습니다. I DIDNOT 필수 섹션 ServiceM을 추가하는 것을 잊지 마십시오. 프록시는 모델 자체에 정의 된 ajax 유형입니다. 나는 또한 각각을위한 상점을 만들었다. 보기에 와서, 나는 응용 프로그램을로드 할 때 파생되는 모든 서비스를 볼 수있는 표를 가지고 있습니다. itemdblclick 이벤트는 양식을 확장하는 창인 서비스에 대한 자세한보기를 제공하는 데 사용됩니다. 양식은 아래 코드로 표시됩니다.연관 ExtJs MVC 4.2

var ServiceDetailV = Ext.widget('alias name of the service detail view'); 
    ServiceDetailV.down('form').getForm().loadRecord(record); 

여기에 두 가지 질문이 있습니다.

  1. Google 크롬에서 개발자 도구를 사용할 때 위 코드에서 디버거를 배치합니다. 결국. 레코드을 강조 표시하고 마우스 오른쪽 버튼을 클릭하여 해당 부분을 평가했습니다. 데이터 부분과 원시 부분을 봅니다. 이 원시 부분은 무엇입니까. 서버가 제공하는 모든 데이터 (페이로드), 심지어 서비스 데이터와 관련된 중첩 된 주석 섹션도 있습니다.
  2. 폼의 필드를 채울 수 있지만 주석 목록은 채울 수 없습니다. 의견 목록은 양식에있는 패널에 표시됩니다. 코멘트 섹션을 어떻게 보급 할 수 있습니까?

JSON 데이터 :

{ 
"data": [ 
    { 
     "id": 1, 
     "x": "some text", 
     "q": "some text", 
     "a": "some text", 
     "r":"some text", 
     "comments": [ 
      { 
       "id": 87, 
       "commentDate": "date", 
       "description": "some text" 
      }, 
      { 
       "id": 86, 
       "commentDate": "date", 
       "description": "some text" 
      } 
     ] 
    } "total": 1, 
"success": true} 

지금, 내가 어떻게 코멘트 필드에 액세스하고이 데이터 양식을 poppulate 수 있습니까?

어소시에이트 ExtJs MVC에 대한 지식을 공개하십시오.

건배!

답변

0

글쎄, 나는 한 걸음 씩 나섰고 이것에 대한 해결책을 얻었다. 원시 매개 변수에는 실제로 원시 JSON 페이로드가 있습니다. 컨트롤러 부분에서는 select 이벤트를 통해 처리했습니다.

onSelectIssueShowComments : function(selection,record, index, eOpts) { 
         this.getComments().setRecord(record.raw); 
        } 

내가보기 부분

tpl : [ '<p>Previous Comments: ', '<tpl for="comments">', 
      '<p>{#}. {description}  {commentDate}</p>', '</tpl></p>' ], 

    setRecord : function(record) {//this record here is record.raw 
     this.record = record; 

     if (record) { 
      this.update(record); 
     } else { 
      this.update(' '); 

     } 
    } 

는 그래서는 패널의 의견의 배열을 표시합니다.

관련 문제