以前,我只使用带有fullcalendar的角度js,那时所有带有data-calendar-view属性的菜单操作菜单都正常工作。
'<ul class="actions actions-alt" id="fc-actions">' +
'<li class="dropdown" dropdown>' +
'<a href="" dropdown-toggle><i class="zmdi zmdi-more-vert"></i></a>' +
'<ul class="dropdown-menu dropdown-menu-right">' +
'<li class="active">' +
'<a data-calendar-view="month" href="">Month View</a>' +
'</li>' +
'<li>' +
'<a data-calendar-view="basicWeek" href="">Basic Week View</a>' +
'</li>' +
'<li>' +
'<a data-calendar-view="agendaWeek" href="">Full Week View</a>' +
'</li>' +
'<li>' +
'<a data-calendar-view="basicDay" href="">Basic Day View</a>' +
'</li>' +
'<li>' +
'<a data-calendar-view="agendaDay" href="">Full Day View</a>' +
'</li>' +
'</ul>' +
'</div>' +
'</li>';
我正在打电话
$('#calendar').fullCalendar('changeView', attrs.calendarView);
这个函数在指令中。
但之后我修改了我的项目并添加了必需的js和角度AMD,以便在需要时加载js。
所有其他代码保持不变,日历在UI中加载,但函数没有执行,甚至没有抛出任何错误。
请帮帮我。
答案 0 :(得分:0)
提供的代码不足以为您提供全面的答案,但是对于您的代码以这种方式失败,只有几个选项
$('#calendar').fullCalendar('changeView', attrs.calendarView);
检查指令是否使用开发人员工具断点或穷人调试执行 - console.log
如果它是应该调用该函数的指令模板,那么请确保在link
中进行指令的方法,因为它被称为后期渲染
$('#calendar').fullCalendar('changeView', attrs.calendarView);
出现在DOM之前调用了#calendar
,在执行fullCalendar之前检查$(&#39;#calendar&#39;)是否存在
$('#calendar')
将返回没有任何元素的jQuery对象,并且fullCalendar
将被调用而不会抛出错误,如果它正在进行DOM赛车问题:
$timeout(function(){
$('#calendar').fullCalendar('changeView', attrs.calendarView);
});
如果在$timeout
中执行此片段会安排下次$digest
来电