2016-12-17 5 views
0

Я изучаю книгу «Освоение Ext Js», я столкнулся с проблемой на Grid Panel не загружает данные из магазина, у меня есть отладочный сервер формата Json, я не знаю в чем проблема, поскольку в консоли нет ошибок.Grid panel doesnot render store in ext js 6.0.0

Вот моя модель класс

Ext.define("pg.model.security.User", { 
extend: 'Ext.data.Model', 
idProperty: 'userName', 
fields: [ 
    { 
     name: 'userName' 
    }, { 
     name: 'roleId' 
    }, { 
     name: 'fullName' 
    }, { 
     name: 'emailId' 
    }, { 
     name: 'mobileNumber' 
    }, { 
     name: 'landLineNumber' 
    }, { 
     name: 'picture' 
    } 
] 
}); 

здесь магазин класс

Ext.define('pg.store.security.Users', { 
extend: 'Ext.data.Store', 
requires: [ 
    'pg.model.security.User' // #1 
], 
storeId:'userStore',  
model: 'pg.model.security.User', // #2 
proxy: { 
    type: 'ajax', 
    url: 'http://localhost:8080/parkgarau-ws/ws/park/userlist', 
    reader: { 
     type: 'json', 
     root: 'data' 
    } 
} 
}); 

От URL, я буду успешно извлечениями Отформатируйте JSON

{ "кода": 200,» message ":" Success "," data ":" [{\ "имя_пользователя \": \ "admin \", \ "roleId \": \ "SYS_ADMIN \", \ "fullName \": \ "Bibek Shakya \" \ "EMAILID \": \ "[email protected] \", \ "MobileNumber \": \ "9843598726 \", \ "landLineNumber \ ": \" 014323565 \ "\ "картина \": \ "index.jpg \"}]"}

вот мой взгляд класс расширить сетки Панель

Ext.define('pg.view.security.UsersList', { 
extend: 'Ext.grid.Panel', 
alias: 'widget.userslist', 
frame: true, 
store: Ext.create('pg.store.security.Users'), // #1 
columns: [ 
    { 
     width: 150, 
     dataIndex: 'userName', 
     text: 'Username' 
    }, 
    { 
     width: 200, 
     dataIndex: 'fullName', 
     flex: 1, 
     text: 'Name' 
    }, { 
     width: 250, 
     dataIndex: 'emailId', 
     text: 'Email' 
    } 
] 
}); 

Это мой контроллер класс

Ext.define('pg.controller.security.Users', { 
extend: 'Ext.app.Controller', 
views: [ 
    'security.Users' // #1 
], 
init: function (application) { 
    this.control({ 
     "userslist": {// #2 
      render: this.onRender 
     } 
    }); 
}, 
onRender: function (component, options) { // #3 
    this.getStore('userStore').load(); 
} 
}); 

ответ

0

я понять, что была проблема, проблема была в формате JSON, , если формат содержит «/» он не собирается разработал

{ 
"code":200, 
"message":"Success", 
"data":"[{\"userName\":\"admin\",\"roleId\":\"SYS_ADMIN\",\"fullName\":\"Bibek Shakya\",\"emailId\":\"[email protected]\",\"mobileNumber\":\"9843598726\",\"landLineNumber\":\"014323565\",\"picture\":\"index.jpg\"}]"} 

, но с четкой формой JSon он работал хорошо

[{"userName":"admin","roleId":"SYS_ADMIN","fullName":"Bibek Shakya","emailId":"[email protected]","mobileNumber":"9843598726","landLineNumber":"014323565","picture":"index.jpg"}] 
+0

Это не потому, что '\' ". Это потому, что вы заключили массив '[....]' в двойные кавычки. – Thevs

+0

@Thevs я не понимаю, это формат сервера, Response (код, msg, data), –

+0

@ B'bekShakya Пожалуйста, покажите серверный код для поколения JSON. В этом что-то не так. – Alexander

Смежные вопросы