我正在使用Dojo 1.10使用AMD创建ItemFileReadStore对象。虽然控制台在创建存储时没有报告任何错误,但我可以从调试器中看到store.data为null。我在我的浏览器控制台(chrome和firefox)上尝试了相同的代码,但也有同样的问题(存储数据为空)。有人可以帮我弄清楚我是否遗漏了什么?
require(["dojo/ready",
"dojo/on",
"dijit/registry",
"dojo/data/ItemFileReadStore"
], function(ready, on, registry, ItemFileReadStore) {
var resultTablecolumns = [{
label: 'ID',
attr: 'id',
sortable: true,
sorted: 'ascending',
width: 60,
vAlignment: "middle",
alignment: "right"
}, {
label: 'Hop',
attr: 'hop',
sortable: true,
sorted: 'ascending',
width: 100,
vAlignment: "middle",
alignment: "right"
}, {
label: 'Role',
attr: 'role',
sortable: true,
sorted: 'ascending',
width: 100,
vAlignment: "middle",
alignment: "right"
}, {
label: 'Status',
attr: 'status',
sortable: true,
sorted: 'ascending',
width: 100,
vAlignment: "middle",
alignment: "right"
}];
var storeItems = {
"identifier": "id",
"items": [{
"id": "1",
"hop": "first",
"role": "classification",
"status": ""
}, {
"id": "2",
"hop": "second",
"role": "propagation",
"status": "info"
}, {
"id": "3",
"hop": "third",
"role": "propagation",
"status": "warning"
}, {
"id": "4",
"hop": "fourth",
"role": "propagation",
"status": "error"
}, {
"id": "5",
"hop": "fifth",
"role": "enforcement",
"status": ""
}]
};
var resultTableStore = new ItemFileReadStore({
data: storeItems
});
console.log("resultTableStore === ", resultTableStore);
});
答案 0 :(得分:0)
您能告诉我们您的HTML吗?
这是一个有效的jsFiddle。
require(["dojo/data/ItemFileReadStore","dojo/dom", "dojo/domReady!"], function(ItemFileReadStore, dom ){
var storeItems = {
"identifier": "id",
"items": [{
"id": "1",
"hop": "first",
"role": "classification",
"status": ""
}]
};
var store = new ItemFileReadStore({data: storeItems});
console.log("ItemFileReadStore",ItemFileReadStore);
dom.byId('store').innerHTML = store ;
});
街区有一个新的孩子取代上述商店,即dstore。试试吧。
答案 1 :(得分:0)
好的,我在一位同事的帮助下想通了。 我实际上正在创建一个ItemFileReadStore并在构建数据网格时使用它。网格没有显示,因为它的父级在创建时被隐藏,因此将其宽度设置为零。 我从他那里了解到数据参数是在第一次获取时处理的,并用于填充内部结构。然后它被淘汰,因为它不再使用。
所以在这种情况下,发生的事情是ItemFileReadStore的数据参数在创建网格时在首次提取时处理,然后设置为null。