2013-09-06 5 views
-1

У меня есть этот коддодзё сетки Json вопрос

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

Какая линия взорвется? Как выглядит содержимое storeData? – GoinOff

+0

Ошибка в файле json.js, который является базовым файлом dojo. StoreData - это формат JSON {"name": "name_val", "quantity": "quantity_val", "category": "category_val"} – tinti

+0

Я имел в виду, какая строка вашего кода? inventoryStore.query? новый dojo.data.ItemFileWriteStore ?? или новый dojox.grid.DataGrid? – GoinOff

ответ

0

может быть, вы должны настроить ваш макет так:

 var layout = [[ 
      {name:"Id", field: "ident", width:"30%"}, 
      {name:"Name", field: "name", width:"70%"} 
      ]]; 

В Ev'ry примере я найти в додзё макет в двойных скобках. Это объясняет, почему ошибка говорит «missing».

Посмотрите: http://dojotoolkit.org/reference-guide/1.9/dojo/data/ItemFileWriteStore.html?highlight=itemfilewritestore#itemfilewritestore-changes-reflected-in-dojox-data-datagrid

Update1

поэтому ошибка лежит в магазине. Вы пытались заполнить такие данные, как:

results = inventoryStore.query(name : "*"); // to query all items 

Вы проверили его, есть результаты в "результатах"?

var storeData = new dojo.data.ItemFileWriteStore({ 
       data:results 
       }); 

В конце концов, я попытался бы заполнить данные без dojo.fromJson.

Дайте ему попробовать.

С уважением, Мириам

+0

Эй! Спасибо за ответ ... но это не причина. Как я сказал GoinOff, ошибка выше объявления макета в var storeData = new dojo.data.ItemFileWriteStore ({data: dojo.fromJson (results)}); Во всяком случае ... я ставлю двойные скобки и по-прежнему ту же ошибку. – tinti

+0

Использование запроса, как вы упомянули, не вносило никаких изменений в поведение. И да, у меня есть данные в объекте storeData. Я вижу, что в консоли FF, а также я сделал пользовательскую функцию для итерации объекта. – tinti

+0

Итак, у меня нет дальнейших идей - возможно, это поможет вам решить ее самостоятельно: http://www.sitepen.com/blog/2008/06/17/json-referencing-in-dojo/ – MiBrock

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 ключевых слов.

+0

Привет! Ошибка была сделана здесь, когда я копирую-вставляю код. В моем коде есть конечный тег. Также я не думаю, что проблемы вызваны ключевыми словами var. – tinti

+0

Вероятно, не ваша текущая проблема, но правильное использование 'var' очень важно и предотвращает некоторые типы труднодоступных ошибок. – Darien

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