我正在开发angularjs应用程序。我有一个JavaScript函数可填充下拉列表。我正在拨打http来从api获取数据。我有工厂要返回数据。下面是代码。
function fillperiod(fillperiodService) {
fillperiodService.getData().then(function(res) {
$scope.cal = response.data.data.Period;
});
}
myapp.factory('fillperiodService', ['$http', '$cookieStore', 'cfg', '$q', function($http, $cookieStore, cfg, $q) {
var baseurl = cfg.Baseurl;
var urlapi = baseurl + "api/Vehicle/GetEMIPeriod";
return {
getData: function() {
var q = $q.defer();
$http.get(urlapi).then(function(response) {
q.resolve(response);
}, function(error) {
q.reject();
})
return q.promise;
}
}
}]);
上面的代码抛出错误:
无法读取未定义的属性“ getData”。
我已经声明了方法getData。我不确定以上代码中缺少什么。我可以得到一些帮助来解决此问题吗?任何帮助,将不胜感激。谢谢。
最佳答案
似乎工厂没有注入您的控制器。因此,在函数内部,未定义fillperiodService。将工厂注入到要从中调用其方法之一的控制器中。那么它将起作用。
EDIT :
myapp.controller('fillPeriod', ['fillperiodService', function(fillperiodService){
//here you can call your fillpersiodService.methodName
}])
关于javascript - AngularJS无法从JavaScript函数调用工厂方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45190728/