我有压延机的这些数据
var codropsEvents = {
"09-10-2013" : "Event Name 1",
"09-11-2013" : "Event Name 2"
};
从数据中获取一个对象数组。我想让它变得动态,所以我做了类似的事情
var codropsEvents = [];
codropsEvents.push({"09-10-2013" : "Event Name 1"});
但它没有出现在日历上的事件。我是以错误的方式初始化对象数组还是我推错了数据。
日历在这里 http://tympanus.net/codrops/2012/11/27/calendario-a-flexible-calendar-plugin/comment-page-4/
答案 0 :(得分:1)
阅读javascript中的数组和对象。
//Object, { Key : value }
var codropsEventsObject = {
"09-10-2013" : "Event Name 1",
"09-11-2013" : "Event Name 2"
};
//Array , Also, array of objects
var codropsEventsArr = [
{"09-10-2013" : "Event Name 1"},
{"09-11-2013" : "Event Name 2"}
];
向对象添加新元素的不同方法
codropsEventsObject.newEle = "newValue"
codropsEventsObject["newEle"] = "newValue"
codropsEventsObject[newEle] = "newValue" // newEle is a js variable
向数组添加新元素的不同方法
codropsEventsArr.push( {newEle , "newValue"}) // newEle is a js variable
codropsEventsArr.push( {"newEle" , "newValue"})
希望有所帮助
答案 1 :(得分:1)
日历接受对象文字,而不是数组。见http://tympanus.net/Development/Calendario/js/data.js
你说(见下面的评论):
for (var x = 0; x < msg.length; x++) {
date = msg[x].date; event_name = msg[x].event;
}
相反:
var codropsEvents = {};
for (var x = 0; x < msg.length; x++) {
codropsEvents[msg[x].date] = msg[x].event;
}
然后您就可以将对象文字绑定到日历。
答案 2 :(得分:0)
你的问题中有些不太清楚。
根据代码的顶部,似乎变量codropsEvents是一个包含名称/值对的对象。
当您的推送操作将新对象推送到数组时,不会向对象添加新值。
为了保持动态,您必须更改代码以支持对象数组。
或者您可以执行以下操作并使用一个具有多个值的对象
var codropsEvents = [];
codropsEvents["09-10-2013"] = "Event Name 1";
codropsEvents["09-10-2013"] = "Event Name 2";