我有这段代码
dojo.ready(function(){
inventoryStore = new dojo.store.JsonRest({
target: "http://localhost:9080/driver/dojoMVC",
idProperty: "name",
put: function(object, options){
if(object.quantity < 0){
throw new Error("quantity must not be negative");
}
}
});
results = inventoryStore.query("");
var storeData = new dojo.data.ItemFileWriteStore({
data:dojo.fromJson(results)
});
gridLayout = [
{ name: 'Name', field: 'name', editable: true},
{ name: 'Quantity', field: 'quantity'},
{ name: 'Category', field: 'category'}];
var grid = new dojox.grid.DataGrid({
store: storeData,
clientSort: true,
structure: gridLayout
}, dojo.byId("gridElement"));
grid.startup();
当我运行它时,我在FF控制台中收到这个奇怪的错误
SyntaxError: missing ] after element list
[Break On This Error]
([object Object])
json.js (line 26, col 9)
任何人都可以帮我吗? 感谢
答案 0 :(得分:0)
问题出在您发布的代码中,在第26行的最后有一个语法错误。您使用dojo.ready({
开始但未使用});
完成
在这里,重新格式化使其更加明显:
dojo.ready(function(){
inventoryStore = new dojo.store.JsonRest({
target: "http://localhost:9080/driver/dojoMVC",
idProperty: "name",
put: function(object, options){
if(object.quantity < 0){
throw new Error("quantity must not be negative");
}
}
});
results = inventoryStore.query("");
var storeData = new dojo.data.ItemFileWriteStore({
data:dojo.fromJson(results)
});
gridLayout = [
{ name: 'Name', field: 'name', editable: true},
{ name: 'Quantity', field: 'quantity'},
{ name: 'Category', field: 'category'}
];
var grid = new dojox.grid.DataGrid({
store: storeData,
clientSort: true,
structure: gridLayout
}, dojo.byId("gridElement"));
grid.startup();
尝试添加:
});
此外,您在那里遗漏了一些var
个关键字。
答案 1 :(得分:0)
也许你必须像这样设置你的布局:
var layout = [[
{name:"Id", field: "ident", width:"30%"},
{name:"Name", field: "name", width:"70%"}
]];
在Ev'ry示例中,我在dojo中找到布局是双括号。 这可以解释为什么错误说“缺少”。
<强> UPDATE1 强>
所以错误在于商店。您是否尝试填写如下数据:
results = inventoryStore.query( name : "*"); // to query all items
你检查过“结果”中有结果吗?
var storeData = new dojo.data.ItemFileWriteStore({
data:results
});
毕竟我会尝试在没有dojo.fromJson的情况下填写数据。
试一试。
此致,Miriam