2013-12-10 58 views
0

我有一個模型,它的ID是字符串類型。我加載一個記錄顯示在網格中,但ID是'NaN'。模型的id在extjs4中只能是int嗎?

JSON

{"results":[{"id":"FT01","name":"area1","enable":true}],"total":1,"success":true} 

模型

Ext.define('YX.model.Area', { 
extend : 'Ext.data.Model', 
fields : [ 
    { name : 'id', type : 'string' }, 
    { name : 'name', type : 'string' }, 
    { name : 'enable', type : 'boolean', defaultValue : true } 
] 
}); 

Ext.define('YX.store.AreaStore', { 
extend : 'YX.store.ListStore', 
model : 'YX.model.Area', 
proxy : { 
    type : 'ajax', 
    url : 'area/list.do', 
    reader : Utils.ajax.gridReader 
} 
}); 
Utils.ajax.gridReader = 
{ 
    type : 'json', 
    root : 'results', 
    successProperty : 'success', 
    totalProperty : 'total' 
} 

如果我設置proxy.reader的直接對象,然後id爲電網正確顯示。

proxy : { 
    type : 'ajax', 
    url : 'area/list.do', 
    reader : { 
     type : 'json', 
     root : 'results', 
     successProperty : 'success', 
     totalProperty : 'total' 
    } 
} 

回答

2

可能取決於你與模型做什麼,以及存儲空間的備份您的數據類型。原則上,不應該有這樣的限制,但可能是框架(或第三方代碼)的某些部分的期望。

不管怎麼說,我寫了一個最小的測試案例與您的模型和一個網格,並正確顯示id字符串。這意味着您可能在代碼中的其他地方有問題...最有可能是代理,閱讀器或商店。

這裏的測試代碼(running there):

Ext.define('Area', { 
    extend: 'Ext.data.Model', 
    fields: [{ 
     name: 'id', 
     type: 'string' 
    }, { 
     name: 'name', 
     type: 'string' 
    }, { 
     name: 'enable', 
     type: 'boolean', 
     defaultValue: true 
    }] 
}); 

Ext.onReady(function() { 
    Ext.widget('grid', { 
     renderTo: Ext.getBody(), 
     height: 300, 
     columns: [ 
      {dataIndex: 'id', text: "ID"}, 
      {dataIndex: 'name', text: "Name"} 
     ], 
     store: { 
      model: 'Area', 
      proxy: { 
       type: 'memory' 
       ,data: [ 
        {id: 'foo', name: "Foo"} 
        ,{id: 'bar', name: "Bar"} 
       ] 
      }, 
      autoLoad: true 
     } 
    }); 
}); 
+0

我創辦這個問題。我定義一個對象並使用每個代理的讀者。現在我改變對象的功能並返回一個對象,它工作的很好。 – user1434702

1

此錯誤是因爲您的字段名稱爲「id」。 默認idProperty =「ID」字段和idProperty場必須在你的情況下INT data.but事實並非如此。 所以這段代碼給你這個錯誤。 如果你不需要idProperty然後chanege你字段的名稱爲「ID」到別的東西

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Model-cfg-idProperty

相關問題