YUI DataTableを使用して次のJSONオブジェクトを表示しようとしています。 lastName、firstName、startDate、employeeCode、employeeStatusをYUI DataTableに正常に表示することができました。しかし、内側のオブジェクトに値を表示することはできませんでした。私はuser.userIdを試して、DataTableに{value}と表示されました。ここでYUIデータテーブルにJSONオブジェクトを表示
[
{
"lastName": "MyLastName",
"firstName": "MyFirstName",
"startDate": "11-11-11",
"employeeCode": "124",
"employeeStatus": "Permanent",
"user": {
"key": {
"name": null,
"parent": {
"name": null,
"parent": null,
"id": 855,
"namespace": "",
"complete": true,
"kind": "Employee"
},
"id": 856,
"namespace": "",
"complete": true,
"kind": "Users"
},
"salt": null,
"userId": "[email protected]",
"status": true,
},
{
...
}
]
はJavascriptコードです:
<script type="text/javascript">
YUI().use("jsonp", 'sortable', 'json-parse', 'datatable', "datatable-sort", "io", "node", function(Y) {
var nestedCols = [
{key : "employeeCode",label : "Employee Code", sortable:true},
{key : "firstName", label : "First Name",sortable: true},
{key : "lastName", label : "Last Name", sortable:true},
{key : "user.userId", label : "Email Id"},
];
Y.io('/Employee/AjaxList', {
on : {
success : function(tx, r) {
var data = Y.JSON.parse(r.responseText);
var table = new Y.DataTable.Base({
columnset : nestedCols,
recordset : data,
}).plug(Y.Plugin.DataTableSort);
table.render("#empTable");
}
}
});
});
</script>
は、このコードスニペットに何か問題はありますか? DataTableでuser.userIdの値を表示するにはどうすればよいですか?
注:JSONはジャクソンを使用して生成され、アプリケーションはGAE/Jで開発され
UPDATE:
Iは@Lukeによって提案次のデータソースを使用します。今回は、ヘッダだけを持つ空のDataTableを取得しました。コードスニペットは次のとおりです。
YUI().use("datasource-get", "datatable-base", "datatable-datasource","datasource-arrayschema", function (Y) {
var url = "/Employee/AjaxList?";
var dataSource, table;
dataSource = new Y.DataSource.Get({ source: url });
dataSource.plug(Y.Plugin.DataSourceArraySchema, {
schema: {
resultFields: ["firstName", "lastName"]
}
});
var cols = ["firstName", "lastName"];
table = new Y.DataTable.Base({
columnset: cols,
});
table.plug(Y.Plugin.DataTableDataSource, { datasource: dataSource });
table.render("#empTable");
table.datasource.load();
});
私はデータソースを使用しようとしましたが、YUIが間違った要求をサーバーに送信しているようです。 http:// localhost:8080/ExampleApp/Employee/AjaxListundefined&callback = YUI.Env.DataSource.callbacks.yui_3_4_0_1_1316763699238_127正しいURLは、http:// localhost:8080/ExampleApp/Employee /であり、Firebugコンソールから取得したURLです。 AjaxList – libregeek
上記のコメントを無視してください。私はこの問題を '?'ソースURLの最後にしかし、まだデータはデータテーブルには入れられていません。私はFirebugコンソールでJSONデータを見ることができます。 – libregeek
datasource-arrayschemaを使用して質問を更新しました。私は、私が得ている応答が配列であり、datasource-jsonschemaのresultListLocatorを特定できないと考えています – libregeek