Ресурс моего планировщика с полным календарем забыли один ресурс - PullRequest
0 голосов
/ 15 мая 2018

Я новичок в FullCalendar, мне нужно разработать календарь с расписанием с вертикальными ресурсами.Моя проблема в том, что когда я хочу вставить ресурсы ресурсов в свой календарь, FullCalendar отображает только 14 ресурсов, в то время как у меня есть 15 ресурсов.Мой календарь все время забывает об одном ресурсе.

См. Мой код для вставки ресурсов:

//Fetch all users from database
    function fetchAllUsers() {
        schedulerService.fetchAllUsers()
            .then(
            function(d) {
                self.users = d;
                for(var i = 0; i < d.length; i++)
                {             
                     $('#calendar').fullCalendar('addResource', {
                        id: d[i].nom,
                        title: d[i].prenom + " " + d[i].nom,
                    });
                }
            },
            function(errResponse) {
                console.error('Error while fetching activities');
            }
        );
    }

Пожалуйста, смотрите объект массива (без данных, потому что я не могу опубликовать эти данные в Stackoverflow):

[
    {
        "id": 601,
        "nom": "TEST4",
        "prenom": "TEST2",
    },
    {
        "id": 2,
        "nom": "TEST8",
        "prenom": "TEST6",
    },
    {
        "id": 1,
        "nom": "TEST7",
        "prenom": "TEST3",
    },
    {
        "id": 4,
        "nom": "TEST45",
        "prenom": "TEST6",
    },
    {
        "id": 6,
        "nom": "TEST23",
        "prenom": "TEST12",
    },
    {
        "id": 9,
        "nom": "TEST20",
        "prenom": "TEST25",
    },
    {
        "id": 10,
        "nom": "TEST74",
        "prenom": "TEST68",
    },
    {
        "id": 11,
        "nom": "TEST78",
        "prenom": "TEST87",
    },
    {
        "id": 12,
        "nom": "TEST456",
        "prenom": "TEST568",
    },
    {
        "id": 401,
        "nom": "TEST75",
        "prenom": "TEST454",
    },
    {
        "id": 501,,
        "nom": "TEST42",
        "prenom": "TEST125",
    },
    {
        "id": 617,
        "nom": "TEST754",
        "prenom": "TEST7512",
    },
    {
        "id": 619,
        "nom": "TEST45",
        "prenom": "TEST78",
    },
    {
        "id": 611,
        "nom": "TRUC",
        "prenom": "TEST",
    },
    {
        "id": 604,
        "nom": "TOTO",
        "prenom": "TUTUT",
    }
]

(длина: 15)

Реальные идентификаторы моих данных:

введите описание изображения здесь

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 15 мая 2018

Ваша проблема в том, что у вас есть два ресурса с одинаковым nom, и поскольку вы используете nom в качестве идентификатора ресурса, он завершается ошибкой, потому что у вас не может быть повторяющихся идентификаторов - если вы это сделали, fullCalendar не сможет различитьмежду ними при выполнении таких вещей, как добавление в календарь или перетаскивание событий.

См. https://jsfiddle.net/toytd26b/74, который демонстрирует эту проблему - второй ресурс с nom: "TEST45" не добавляется в календарь.

Предполагается, что поле id в вашемобъекты уникальны , я предлагаю вам использовать это вместо идентификатора ресурса.Одно маленькое изменение в вашем коде - это все, что нужно:

for(var i = 0; i < d.length; i++)
{             
  $('#calendar').fullCalendar('addResource', {
    id: d[i].id, // use your id field as the resource ID
    title: d[i].prenom + " " + d[i].nom
  }, true);
}

Теперь смотрите https://jsfiddle.net/toytd26b/75, который использует ваше поле id в качестве идентификатора ресурса.Все ресурсы присутствуют в календаре.

...