使用UI Calendar时,遇到异步读取数据报错问题

原创 2017年01月03日 16:01:26

使用UI Calendar时,遇到异步读取数据报错问题


  • 原始代码(有关代码)

    vm.events = [];
    init();
    function init() {
        ecnuMessageDao.getCurrentMessages(function (res) {
            vm.events = res.data;                
        })
    }
    vm.uiConfig = {
        calendar: {
            height: 450,
            editable: true,
            weekNumbers: true,
            navLinks: true,
            eventLimit: true,
            buttonIcons: false,
            locale: 'zh-cn',
            views: {
                day: {
                    titleFormat: 'YYYY年MM月DD日'
                },
                week: {
                    titleFormat: 'YYYY年MM月'
                },
                month: { // name of view
                    titleFormat: 'YYYY年MM月'
                },
            },
            timeFormat: 'HH:mm',
            header: {
                left: 'prev,next today myCustomButton',
                center: 'title',
                right: 'month,agendaWeek,agendaDay,listMonth'
            },
            dayNames: [
                "星期日",
                "星期一",
                "星期二",
                "星期三",
                "星期四",
                "星期五",
                "星期六"
            ], dayNamesShort: ["日", "一", "二", "三", "四", "五", "六"], monthNames: [
                "一月",
                "二月",
                "三月",
                "四月",
                "五月",
                "六月",
                "七月",
                "八月",
                "九月",
                "十月",
                "十一月",
                "十二月"
            ],
            eventClick: vm.alertOnEventClick,
            eventDrop: vm.alertOnDrop,
            eventResize: vm.alertOnResize,
            eventRender: vm.eventRender
        }
    };
    vm.eventSources = [vm.events];
    
  • 代码执行次序

    • 上述代码的执行次序应该是执行到init后,由于有异步请求,因此会继续往下执行,此时vm.events并没有值。等到代码都执行完,数据返回之后执行vm.events = res.data;来改变vm.events的值。这样逻辑上感觉没错,但是数据并没有加到Calendar中。
  • 分析原因
    • 经过调试,发现在执行完vm.events = res.data;之后,vm.events中的值确实是改变了,但是html的显示却没有改变。那么猜测应该是Calendar中的某个监听没有起作用,或者说vm.events = res.data;这条语句没有触发这个监听。
  • 解决过程
    • 后来查看了官方DemoaddEvent方法,发现它是通过events.push操作来添加新的event。因此猜测数组的push方法能够触发该未知的监听。
  • 最终解决方法
    • vm.events = res.data;改成
      for (var i = 0; i < res.data.length; i++) vm.events.push(res.data[i]);
      最后亲测有效。

PHPExcel中导出数据报错!个人遇见的问题,用的laravel框架

用PHPExcel导出数据都是直接输出内容,平时没有出现什么问题。今天导出突然出现,导出的时候PHPExcel抛出异常: 用的laravel框架 C361 -> Formula Error: An...
  • xzykai
  • xzykai
  • 2017年07月19日 10:45
  • 367

jquery ajax方法提交json格式数据报错,一直返回error问题-已解决

这段时间在研究ajax交互,由于不是很理解,再加上网上学习资料描述的些许专业,理解不了。于是就本着探究的精神,自己做了一个表单提交,反复测试、揣摩、思考;遇到问题就上网搜,各种小问题不断,但就是这些小...
  • jiyanle
  • jiyanle
  • 2015年04月23日 21:48
  • 1666

发布元数据报错 NC错误处理

  • 2013年08月13日 09:21
  • 1.25MB
  • 下载

Envi问题:解决Envi打开img数据报错的问题

在Envi4.8中打开后缀名为.img格式 的数据 时,会报出以下错误: Error reading erdas file:Compressed Erdas files are currentl...
  • hmei007
  • hmei007
  • 2012年10月08日 18:13
  • 7169

[Android]使用Bmob向云数据库插入数据报错

错误报告:03-08 21:02:12.163 17324-17613/com.xiaoyan.sharesystem E/AndroidRuntime: FATAL EXCEPTION: RxIoS...

C#操作串口,带异常处理,解决端口占用时打开串口出现异常错误,串口关闭时发送数据报错

using System; namespace chuankou { /// /// Class1 的摘要说明。 /// class send { /// /// 应用程序的主...

mysql 导入数据报错

mysql 数据导入导出问题

springMVC返回json格式数据报错:No converter found for return value of type: class java.util.HashMap

博主刚在写上一篇文章: SpringMVC异步上传多文件 的时候返回json格式对象,一直报错:No converter found for return value of type: class j...
  • wqh8522
  • wqh8522
  • 2017年05月28日 18:08
  • 1770
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用UI Calendar时,遇到异步读取数据报错问题
举报原因:
原因补充:

(最多只允许输入30个字)