0

我在 Asp.Net MVC 中使用 fullCalendar 创建日历同步应用程序,两个人可以在同一日历上查看彼此的事件。这一切都很好,花花公子,现在我只想让模式是唯一的,这取决于事件是否来自 Model.ListA 和 Model.ListB。感觉就像我在阳光下尝试了一切。任何和所有建议将不胜感激!注意: JS 中的 belongsTo === '' 显然是我在黑暗中的最后一击……虽然不起作用。其他几个场景至少打开了模式,但我在#modal-links 中包含的链接没有显示。我在我的主日历上使用了同样的方法并且它可以工作,但是现在我使用 if elseif 他们不会显示链接按钮。此外,我使用视图模型传递了 2 个列表。再次感谢!

这是我的代码中的一个片段,应该有助于理解我正在使用什么......

<div class="col-md-11">
    <div id="fullCalModal" class="modal fade">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 id="modalTitle" class="modal-title"></h4>
                </div>
                <h5 id="modalStart" class="modal-body"></h5>
                <h5 id="modalEnd" class="modal-body"></h5>
                <h5 id="modalDetails" class="modal-body"></h5>
                <h5 id="modalPrivate" class="modal-body"></h5>
                <div id="modal-links"></div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    <div id='calendar'></div>
</div>

`<script type="text/javascript">
$(document).ready(function () {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    $('#calendar').fullCalendar({
        allDay: false,
        timezone: 'local',
        selectable: true,
        selectHelper: true,
        editable: true,
        year: y,
        month: m,
        date: d,
        header: {
            left: 'title',
            right: 'prev,next,today,agendaDay,agendaWeek,month'
        },
        defaultView: 'month',
        editable: true,
        //googleCalendarApiKey: 'API-Key',
        droppable: true,
        slotDuration: '00:30:00',
        scrollTime: '06:00:00',
        slotEventOverLap: true,
        disableResizing: false,
        eventOrder: '-start',
        eventSources: [
        {
            events: @Html.Raw(Json.Encode(Model.ListA)),
            //"belongsTo": 'A',
            color: '#007575',
            textColor: 'white'
        },
        {
            events: @Html.Raw(Json.Encode(Model.ListB)),
            //"belongsTo": 'B',
            color: 'purple',
            textColor: 'white'
        }
        ],
        eventClick: function(event, jsEvent, view){
                $('#modalTitle').html(event.title);
                $('#modalStart').html("START: " + event.start._d.toLocaleDateString() + " " + event.start._d.toLocaleTimeString());
                $('#modalEnd').html("END: " + event.end._d.toLocaleDateString() + " " + event.end._d.toLocaleTimeString());
                $('#modalDetails').html("DETAILS: " + event.details);
                $('#modalPrivate').html("PRIVATE: " + event.isPrivate);
                if(belongsTo === 'A'){
                    $('#modal-links').html("<a class='btn btn-default2 btn-md' href='/Members/ChooseContacts/"+event.Id+"'>Send Invitation</a><a class='btn btn-default1 btn-md' href='/Events/GetDirections/"+event.Id+"'>Get Directions</a><a class='btn btn-default1 btn-md' href='/Events/GetWeather/"+event.Id+"'>Weather Forecast</a><a class='btn btn-default1 btn-md' href='/Events/Edit/"+event.Id+"'>Edit</a><a class='btn btn-default1 btn-md' href='/Events/Delete/"+event.Id+"'>Delete</a>");
                } else if (belongsTo === 'B') {
                    $('#modal-links').html("<a class='btn btn-default1 btn-md' href='/Members/AddToMyEvents/"+event.Id+"'>Add To My Events</a>");
                }
                $('#fullCalModal').modal();
            }
        });
});`
4

1 回答 1

0

我认为 belongsTo 应该在 Model.List 的每个项目中定义

所以 Model.ListA 中的每个项目都将belongsTo : A与 ListB 相同,

然后尝试进行这样的检查, (event.belongsTo === 'A') 虽然我不是 100% 确定,但尽量不要失去

于 2017-05-26T18:26:27.827 回答