如何从Thunderbird / Lightning日历中获取待办事项?

时间:2011-07-11 02:24:08

标签: thunderbird lightning

我无法找到如何在Lightning中获取日历的所有待办事项。我认为getItem()接口(here)中的函数getItems()calICalendar是解决方案,但我无法使其正常工作。

2 个答案:

答案 0 :(得分:2)

你正朝着正确的方向前进。你只需要传递你想要的标志。可以找到一个示例here

要详细说明下面的示例,有一些语法错误,您可能需要不同的标志。我不确定为什么需要提醒,这对我来说就像事件循环没有被旋转一样。你在什么情况下调用这些位?

试试这个:

var arrayItems = new Array();

var todoListener = {
    onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {},
    onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) {  
        arrayItems = arrayItems.concat(aItems);
    }
};

var filter = aCalendar.ITEM_FILTER_TYPE_TODO | aCalendar.ITEM_FILTER_COMPLETED_ALL;
aCalendar.getItems(filter, 0, null, null, todoListener);

答案 1 :(得分:1)

感谢你的例子,我理解了如何实现我的主要问题的监听器。

所以我在这里编码:

var arrayItem = new Array; ;

    var todoListener = 
    {
        onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {},
        onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) 
        {    
            for (let i=0; i < aCount; i++) 
            {
                arrayItem.push(aItems[i]);
            }           
        }
    };

    var filter = aCalendar.ITEM_FILTER_ALL_ITEMS;
    filter |= aCalendar.ITEM_FILTER_TYPE_TODO;
    aCalendar.getItems(filter, 0, null, null, todoListener);

但是,我在这里有一个非常奇怪的问题。实际上,我没有得到这个代码的待办事项。我必须在getItems()方法之后添加alert("something");以填充我的arrayItem。否则,它是空的。