2013-04-24 114 views
1

我正在使用angluarJS进行扩展,现在我有一个问题,完全烧毁了我的大脑。
我想抓取数据,解析数据并将解析后的数据存储在localStorage的后台页面中,然后在浏览器操作中获取该数据并在弹出的html中显示该数据。现在我想抓
,反复解析和存储数据,如http://developer.chrome.com/extensions/alarms.html所述,我使用chrome.alarms api来做到这一点,但它不能正常工作。chrome.alarms api与angularJS无法正常工作

这是我在后台控制器代码:

app.controller('bgCtrl', function AlfredCtrl($scope, courseService) { 
    var setLocal = function(){ 
     console.log("fired inside setLocal(), but out of getCourses()"); 
     courseService.getCourses().then(function (events){ 
      console.log("fired inside of getCourses()"); 
      localStorage.setItem("deadlines", JSON.stringify(events.deadlines)); 
     }) 
    }; 

    var delay = 1 ; 
    chrome.alarms.create("scheduleRequest", {periodInMinutes: delay}); 

    chrome.alarms.onAlarm.addListener(function(alarm){ 
     if(alarm.name == "scheduleRequest"){ 
      console.log("fired out of setLocal()"); 
      setLocal(); 
     } 
    }); 
}); 

功能getCourses()从服务BG返回。当它被调用时,它会返回解析的数据。

当我在Chrome浏览器开发工具进行检查,它一再显示:

fired out of setLocal().       bgCtrl.js:32 
fired inside setLocal(), but out of getCourses(). bgCtrl.js:7 

也就是说函数courseService.getCourses()未在all.That被callec是我有问题。

请帮助我!

+0

你还对这个问题有兴趣吗? – Xan 2015-03-12 11:28:42

+0

我对它很感兴趣。 – saric 2016-04-18 13:20:59

回答

-1

您可以在manifest.json中

这样,你的应用程序将有机会在Chrome的API的报警功能

“权限”添加“警报”权限:[ “报警”, .. ... ],

+0

如果这是原因,那肯定会出现不同的错误。 – Xan 2015-03-12 11:28:28