全日历,资源作为功能不起作用

时间:2018-08-05 15:58:43

标签: fullcalendar fullcalendar-scheduler

我正在使用Fullcalendar,并且正在尝试将资源用作功能

resources: function(callback){
          var manageEvent = new ManageEvent();
          var request = manageEvent.getEmployees();

          request.always(function (param) {
            //location.reload();
            var list = [];
            var emp;
            for (var elem in param) {
              emp = param[elem];
              list.push({
                  'id': emp['cp_collaboratore'],
                  'title': emp['cognome_col']
              });
            }

            var t = JSON.stringify(list);

            callback(t);

          });
          request.catch(function (param) {
              alert('errore');
          });
        },

我通过日志检查了变量't',它显示了以下结果:

[{"id":"1","title":"name_1"},{"id":"2","title":"name_2"},{"id":"3","title":"name_3"},{"id":"5","title":"name_4"},{"id":"9","title":"name_5"}]

但它不起作用,并显示以下错误消息:

Uncaught TypeError: resourceInputs.map is not a function
at ResourceManager.setResources

1 个答案:

答案 0 :(得分:-1)

您只需要写

callback(list);
代码中的

t是一个字符串,因为使用listJSON.stringify()数组转换为字符串。但是fullCalendar需要一个实际的数组,而不是字符串。它无法运行函数或从字符串读取单个属性。

您可以完全删除行var t = JSON.stringify(list);,这是不需要的。

通常,使用stringify()的唯一原因是要将值记录到控制台进行调试,或者如果要使用AJAX将其发送到其他地方,则将其转换为JSON。当您只能使用对象本身时,将数组中的对象和对象作为序列化字符串传递给JavaScript毫无意义。