工厂:
factory('cordovaReady', function () {
return function (fn) {
var queue = [];
var impl = function () {
queue.push(Array.prototype.slice.call(arguments));
};
document.addEventListener('deviceready', function () {
queue.forEach(function (args) {
fn.apply(this, args);
});
impl = fn;
}, false);
return function () {
return impl.apply(this, arguments);
};
};
})
我在另一家工厂使用了这个工厂,如下所示:
return {
getCurrentPosition: cordovaReady(function (onSuccess, onError, options) {
//
}
}
当触发 deviceReady 事件时,cordovaReady 工厂将执行传递的回调。我的问题是如何在控制器中使用它?
我试过了
.controller( 'HomeCtrl', function HomeController($scope, cordovaReady) {
cordovaReady(function(){
//do stuff
});
});
但它没有用。没有控制台错误。有任何想法吗?