Javascript 如何将服务注入到.run(函数)中?
我想问一下,如何将服务注入Angular应用程序中的app.js文件中?(在我的例子中,服务称为DialService) 如果我试图调用服务方法,例如:Javascript 如何将服务注入到.run(函数)中?,javascript,angularjs,service,Javascript,Angularjs,Service,我想问一下,如何将服务注入Angular应用程序中的app.js文件中?(在我的例子中,服务称为DialService) 如果我试图调用服务方法,例如: DialService.makeCall(jsonObj.phone_number); 我得到了未捕获的TypeError:无法调用未定义的方法“makeCall” 如何在app.js中调用服务方法 谢谢你的帮助 服务如下: /** * Service for making calls */ .factory('DialService',
DialService.makeCall(jsonObj.phone_number);
我得到了未捕获的TypeError:无法调用未定义的方法“makeCall”
如何在app.js中调用服务方法
谢谢你的帮助
服务如下:
/**
* Service for making calls
*/
.factory('DialService', function($ionicLoading) {
return {
makeCall: function(number) {
window.cordova.plugins.DirectCallPlugin.call(number, callSuccessCallback, callFailCallback);
}
};
var callSuccessCallback = function() {
console.log("Success call");
};
var callFailCallback = function() {
console.log("Fail calll");
$ionicLoading.show({
template: 'Error during call dial',
duration: 1000
});
};
});
您不能在
运行
阶段注入服务。您需要的是使用提供程序
将此转换为:
.factory('DialService', function($ionicLoading) {
为此:
.provider('DialService', function($ionicLoading) {
而且,由于提供者是“类似服务的”,您不需要返回任何内容,但需要将您的方法添加到提供者对象:
this.makeCall = function(number) {
window.cordova.plugins.DirectCallPlugin.call(number, callSuccessCallback, callFailCallback);
}
function callSuccessCallback () {
console.log("Success call");
};
function callFailCallback () {
console.log("Fail calll");
$ionicLoading.show({
template: 'Error during call dial',
duration: 1000
});
};
this.makeCall = function(number) {
window.cordova.plugins.DirectCallPlugin.call(number, callSuccessCallback, callFailCallback);
}
function callSuccessCallback () {
console.log("Success call");
};
function callFailCallback () {
console.log("Fail calll");
$ionicLoading.show({
template: 'Error during call dial',
duration: 1000
});
};