Fullcalendar,资源作为功能不起作用

Fullcalendar, Resources as function don't work

我正在使用 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

你只需要写

callback(list);

t 在您的代码中是一个字符串,因为您使用 JSON.stringify()list 数组转换为字符串。但是 fullCalendar 需要一个实际的数组,而不是一个字符串。它不能 运行 函数或从字符串中读取单个属性。

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

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