Tengo lo siguiente:
require([
"dojo/dom",
"dojo/on",
"dojo/store/Observable",
"dojo/store/JsonRest",
"dojo/store/Memory",
"dgrid/OnDemandGrid"
], function (dom, on, Observable, JsonRest, Memory, OnDemandGrid) {
var store = new JsonRest({
target: "client/list",
idProperty: "id"
});
var grid = new OnDemandGrid({
columns: {
"id": "ID",
"number": "Name",
"description": "Description"
},
sort: "lastName",
store: store
}, "grid");
});
client / list es una url de descanso que devuelve un objeto json {data: [...]}, pero el contenido de la lista nunca aparece: /
Creo que el problema es causado por la carga asincrónica de datos, porque con un objeto codificado json el contenido aparece
EDITAR:
He logrado lograr esto usando un dojo / solicitud, pero el JsonRest normalmente no debería actuar de la misma manera. ¿Alguien puede señalarme en la dirección correcta?
require([
"dojo/dom",
"dojo/on",
"dojo/store/Memory",
"dojo/request",
"dgrid/OnDemandGrid"
], function (dom, on, Memory, request, OnDemandGrid) {
request("client/list", {
handleAs: "json"
}).then(function (response) {
// Once the response is received, build an in-memory store with the data
var store = new Memory({ data: response });
// Create an instance of OnDemandGrid referencing the store
var grid = new OnDemandGrid({
store: store,
sort: "id", // Initialize sort on id, ascending
columns: {
"id": "ID",
"number": "Name",
"description": "Description"
}
}, "grid");
console.log(store);
on(dom.byId("queryForm"), "input", function (event) {
event.preventDefault();
grid.set("query", {
// Pass a RegExp to Memory"s SimpleQueryEngine
// Note: this code does not go out of its way to escape
// characters that have special meaning in RegExps
description: new RegExp(this.elements.last.value, "i")
});
});
on(dom.byId("queryForm"), "reset", function () {
// Reset the query when the form is reset
grid.set("query", {});
});
});
});
Respuestas
0 para la respuesta № 1Ok problema encontrado: /
Mi url "cliente / lista" estaba devolviendo un objeto json como este:
{data: [{id:"1", label: "test"}, {id:"2", label: "test"}]}
Resulta que el objeto JsonRest ya está encapsulando datos en un datos nodo, por lo que al devolver un json como este:
{[{id:"1", label: "test"}, {id:"2", label: "test"}]}
todo funcionó bien :)