我的fullcalendar调度程序视图ressource忘了一个ressource

时间:2018-05-15 09:22:28

标签: javascript angularjs fullcalendar fullcalendar-scheduler

我是FullCalendar的初学者,我需要开发一个带有垂直资源的日程视图的日历。我的问题是当我想在我的日历中插入ressources对象时,FullCalendar只显示14个ressources,而我有15个ressources。我的日历一直忘记一个资源。

请参阅我的代码以插入资源:

//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)

我的数据的真实身份:

enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的问题是因为您有两个具有相同nom的资源,并且由于您使用nom作为资源ID,因此您失败,因为您不能拥有重复的ID - 如果您这样做,则fullCalendar不会在执行添加到日历或拖动事件等操作时能够区分它们。

请参阅显示该问题的https://jsfiddle.net/toytd26b/74 - 带有nom的第二个资源:“TEST45”未添加到日历中。

假设对象中的id字段唯一,我建议您将其用作资源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字段作为资源ID。所有资源都出现在日历上。