我是棱角分明的新人。我有一个服务,我在服务中的另一个函数调用一个函数。但在我的控制器中显示为未定义。见下文
//my Service
myApp.service("LocationService", function() {
var srv = {}
srv.msg = {long:0, lat:0};
srv.onSuccess = function() {
this.msg.lat = 32;
},
srv.onError = function() {
this.msg.long = 99;
},
srv.getGpsFix = function() {
this.onSuccess();//fails in controller
}
return srv;
});
//my Controller
myApp.controller("MusicCtrl", ["$scope", "LocationService", function($scope, LocationService) {
//undefined
console.log(locationService.getGpsFix());
}]);
答案 0 :(得分:1)
locationService.getGpsFix()
返回undefined
是正确的。
如果您打算让它返回一个值,请在函数中使用return
关键字。
srv.getGpsFix = function() {
this.onSuccess();
return 'It worked!!!';
};
答案 1 :(得分:1)
locationService.getGpsFix()
是undefined
。在您的控制器中,您的服务以LocationService
的形式提供。因此,请使用LocationService.getGpsFix()