我正在使用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
答案 0 :(得分:-1)
您只需要写
callback(list);
代码中的 t
是一个字符串,因为使用list
将JSON.stringify()
数组转换为字符串。但是fullCalendar需要一个实际的数组,而不是字符串。它无法运行函数或从字符串读取单个属性。
您可以完全删除行var t = JSON.stringify(list);
,这是不需要的。
通常,使用stringify()的唯一原因是要将值记录到控制台进行调试,或者如果要使用AJAX将其发送到其他地方,则将其转换为JSON。当您只能使用对象本身时,将数组中的对象和对象作为序列化字符串传递给JavaScript毫无意义。