gpt4 book ai didi

javascript - 具有单独着色 js 的全日历多访问事件

转载 作者:行者123 更新时间:2023-12-03 03:04:39 25 4
gpt4 key购买 nike

我有一个事件架构:

const EventSchema = new Schema({
title: {type: String, required: true},
members: [{
_id: false,
id: {type: Schema.Types.ObjectId, ref: 'User', required: true},
color: {type: String, required: true, default: '#008975'},
preference: {type: Number, required: true, default: 1, min: 1, max: 3}
}],
});

这意味着,多个人可以访问同一事件,并且每次创建事件时,该组的所有成员都会被推送到事件成员的数组中,并为所有人生成默认的首选项和颜色。 (“参加”,颜色“绿色”)

每次有人点击该事件时,该事件都会更改颜色和偏好 -(如果是 1,则为 2,颜色为黄色,如果为 2,则为 3,颜色为红色,如果为 3,则为 1,然后返回绿色)

问题是 - color 属性不在主 EventSchema 中,而是一个内部属性,因此 calendarOptions 呈现默认颜色。我设法达到了它在启动时应该渲染的颜色,以获得单独的颜色:

const activeID = this.activeID;
this.colors = this.events.map(function (event) {
return event.members
.filter(function (obj) {
return obj.id === activeID
})
.map(function (obj) {
console.log(obj.color); // <--- image below - output 1
return obj.color
})
});
console.log(this.colors); // <--- image below - output 2

Console.log 输出:

Outputs

现在在日历选项中:

events: this.events,
eventColor: this.colors, // <---- doesn't work, renders all with default blue coloring

通过输入 eventColor: 'yellow' 覆盖默认值,有效 - 将所有内容渲染为黄色。

另外:eventColor: ['yellow'] 也有效

但是,eventColor: ['yellow', 'red', 'green'] 不起作用

我觉得我非常接近这里的解决方案

点击后颜色会渲染,因为更新首选项/颜色 http 请求 100% 有效

我认为我需要以某种方式从分离数组的颜色创建一个数组,并按顺序将它们分配给事件数组中的事件。

有什么想法吗?

最佳答案

@ADyson 很好地指导了我

这是我添加到 calendarOptions 中的内容:

eventRender: function(event, element) {
const color = event.members.filter(function(member) {
return member.id === activeID
})
.map(function(obj) {
return obj.color
});
element.css('background-color', color);
},

关于javascript - 具有单独着色 js 的全日历多访问事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com