Combobox и Value столкнулись - PullRequest
1 голос
/ 23 мая 2011

Я использую комбинированный список Dojo вместе с JSON.У меня есть ошибка: элементы в списке имеют идентификатор: [id].Значение столкнулось: [48] Если я смотрю на свой сырой json, у меня есть только два объекта с идентификатором 41 и 48, но когда я смотрю на мой ItemFileReadStore, у меня есть четыре объекта, один из которых является объектом с id = 41, а тридругие же дубликаты объектов с id = 48

метод, используемый для ItemFileReadStore:

var store = new dojo.data.ItemFileReadStore( { data: {
                  identifier: "id",
                  items: data
                }});

                console.log(store);

                var filteringSelect = new dijit.form.ComboBox({
                    store: store,
                    searchAttr: "nafn"
                },
                "nafn");

В чем может быть источник проблемы?

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Я заметил некоторые ошибки в вашем коде.

1) dojo.data.ItemFileReadStore ожидает, что данные будут в определенном формате, в котором вам не хватает этого формата. формат будет примерно таким.

var storeData = {identifier : 'uniqueIdOfEachItem', label : 'displayName', items : [
  {uniqueIdOfEachItem:1,displayName:'somename'},
  {uniqueIdOfEachItem:2,displayName:'somename2'}
]}
var store = new dojo.data.ItemFileReadStore({data: storeData })
var filteringSelect = new dijit.form.ComboBox({
                store: store ,
                searchAttr: "displayName"
            },
            "id_of_element_in_html_where_your_combo_will_sit");

2) searchAttr в ComboBox должен быть одним из реквизитов элемента магазина (здесь uniqueIdOfEachItem или displayName).

3) Убедитесь, что идентификатор (здесь uniqueIdOfEachItem) для каждого элемента в магазине является уникальным, если его не уникальное, комбинированное окно не будет работать, выдавая ошибку, аналогичную той, которую вы упомянули.

1 голос
/ 24 мая 2011

Я действительно исправил свой код.Я также узнал, что проблема заключалась в том, что у моей сущности есть два поля, на которые я сам ссылаюсь, и поэтому один и тот же идентификатор можно было найти много раз.

В моем случае у personn было два родителя, мама и папа , которые также были персонами с их идентификатором.

Это выглядело примерно так:

[{id:'1',name:'john',father:{id:'2',name:'gils'},mother:{id:'3',name:'loa'}}]
[{id:'1',name:'nora',father:{id:'2',name:'gils'},mother:{id:'3',name:'loa'}}]

У меня конфликт, потому что id [2]столкнулся.

Мне пришлось убрать двух полевых маму и папу, и это решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...