2014-09-17 3 views
0

서버에서 데이터를 성공적으로 가져 왔지만 응답을 처리 할 때 각 객체의 특정 속성에 액세스 할 수 없습니다. 문제가 뭔지 전혀 모른다. 내 콤보 박스가 제목, 장르 및 연도를 포함하여 각 항목을 성공적으로로드하고 표시합니다. 다른 속성을 표시 할 수 없습니다. 여러 단어 속성 (item_id)이 아닌, 각 단어 속성 (예 : title)이 표시된다는 것을 알고 있습니다. 따라서 나는 itemIditem_id을 모두 사용해 보았습니다.하지만 행운은 없습니다. 이견있는 사람?listConfig/getInnerTpl에서 comboBox로 표시되지 않는 속성

Search.js (검색보기) 나는 getInnerTpl 함수의 구문과 놀았 던 - 나는 조금 이상한 보인다 알고있다. 문제를 발견 - 결과의

// Search results view 

Ext.define('LibApp.view.librarian.actions.Search', { 
extend: 'Ext.form.Panel', 
alias: 'widget.librariansearch', 
id: 'librariansearch', 

require: [ 
    'Ext.form.field.Text', 
    'Ext.Button', 
    'Ext.layout.container.Anchor', 
    'Ext.form.field.ComboBox' 
], 

title: 'Search Results', 

layout: { 
    type: 'anchor' 
}, 

defaults: { 
    margin: '10px' 
}, 

autoScroll: true, 

items: [ 
    { 
     xtype: 'combo', 
     id: 'searchcombo', 
     store: 'Items', 
     displayField: 'title', 
     anyMatch: true, 
     typeAhead: true, 
     typeAheadDelay: 0, 
     hideLabel: true, 
     enableKeyEvents: true, 
     hideTrigger:true, 
     anchor: '100%', 
     margin: '10px', 
     emptyText: 'Enter an Item Title', 

     listConfig: { 
      loadingText: 'Searching...', 
      emptyText: 'No matching items found.', 
      // Custom rendering template for each item 
      getInnerTpl: function(displayField) { 
       return '<span><b>{title}</b></span>' + 
        '<br>displayField: {displayField}' + 
        '<br>itemType: {itemType} | item_type: {item_type} | itemId: {itemId} | item_id: {item_id}' +  
        '<br>Item Type: {itemType} | Quantity Available: {quantityAvailable} | Year: {year}' + 
        '<br>Item ID: {itemId} | Genre: {genre} | Call Number: {callNumber}'; 
      }, 

      listeners: { 
       // on itemclick, open window showing item details 
       itemclick: function(list, record) { 
        var resWin = Ext.create('Ext.window.Window', { 
         x: 100, 
         renderTo: 'librariancenter', 
         title:'Item Details', 
         height: 200, 
         width: 400, 
         layout: 'fit', 
         html: '<div><h3> ' + record.title + '</h3>' + 
          ' Item Type: ' + record.itemType + ' | Quantity Available: ' + record.quantityAvailable + '<br>' + 
          ' Genre: ' + record.genre + ' | Call Number: ' + record.callNumber + '</div>', 
         buttons: [ 
          { 
           text: 'Reserve Item', 
           handler: function(button, evt){ 
            // Show reserveitem view 
            list.up('librariancenter').getLayout().setActiveItem('reserveitem'); 

            // Autofill fields 
            Ext.getCmp("reserveitem").getForm().findField("item_id").setValue(record.get("item_id")); 
            Ext.getCmp("reserveitem").getForm().findField("title").setValue(record.get("title")); 

            // Close item detail window 
            resWin.close(); 
           } 
          }, 

         ], 
        }); 
        resWin.show(); 
       } 
      }, 
      pageSize: 10 
     } // end listConfig 
    }, 
    { 
     xtype: 'component', 
     style: 'margin-top:10px', 
     html: 'Live search requires a minimum of 4 characters.', 
     padding: '10px' 
    } 
] 
}); 

스크린 샷

enter image description here

답변

0

참고 (아래 콘솔, 당신은 응답을 볼 수 있습니다). 모델의 구문이 표준 camelCase가 아닌 multiple_word 패턴을 따르므로 불일치가 발생합니다. 모델의 필드를 변경하면 문제가 해결됩니다.

관련 문제