2013-07-23 18 views
3

說我有一個字段這裏用戶在「JSON」格式:json文件是如何讀取的? ExtJS的

{ 
    "users": [ 
     { 
      "id": 1, 
      "name": "Ed Spencer", 
      "email": "[email protected]" 
     }, 
     { 
      "id": 2, 
      "name": "Abe Elias", 
      "email": "[email protected]" 
     } 
    ] 
} 

我假設根這裏是「用戶」。我會將這段文字保存爲users.json文件嗎?

從那裏,我怎麼從這個文件讀取(在這種情況下,ext.js)

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 
    fields: ['name', 'email'] 
}); 

var store = Ext.create('Ext.data.Store', { 
    model: 'User', 
    proxy: { 
     type: 'ajax', 
     url : 'users.json', 
     reader: { 
      type: 'json', 
      root: 'users' 
     } 
    } 
}); 

的網址是什麼?這是絕對路徑嗎?這將甚至工作嗎?幫幫我!

回答

3

在HTML頁面中,JavaScript文件是相對於HTML頁面的URL或絕對路徑提供的。

我會將此文本保存爲users.json文件嗎?

你當然可以。

什麼是網址?

的URL users.json相對於正在運行的應用程序的HTML頁面的URL,因此,如果HTML頁面在http://localhost/myapp/index.html,相對路徑users.json將是相同的絕對路徑http://localhost/myapp/users.json

這是一條絕對路徑嗎?

不,users.json是相對路徑。如果你願意,你可以使用絕對路徑

我會在app文件夾內製作一個data文件夾,並使用app/data/users.json作爲URL。

您還應該學習Chrome開發者工具,以便您可以查看網絡請求。

+0

我這樣做,但我不斷收到「NS_ERROR_DOM_BAD_URI:訪問受限制的URI被拒絕」錯誤,我不知道爲什麼? –

+0

你在服務器上運行還是通過文件系統運行? Chrome開發人員工具網絡選項卡告訴你什麼? –

+0

僅適用於文件系統,而我目前無法在辦公室使用chrome –

1
{ 
    "users": [ 
     { 
      "id": 1, 
      "name": "Ed Spencer", 
      "email": "[email protected]" 
     }, 
     { 
      "id": 2, 
      "name": "Abe Elias", 
      "email": "[email protected]" 
     } 
    ] 
} 
在模型中的場

,沒有ID,它來源於JSON,只有名字和電子郵件領域...

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 
    fields: ['name', 'email'] 
}); 

添加id字段建模,這樣

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 
    fields: ['id', 'name', 'email'] 
});