私はAngularを初めて使用していますので、私は間違いを犯していると思いますが、 私はいくつかのデータを取得するためのサービスを作成した後、自分のコントローラにサービスを注入しました。AngularJSで「未定義のプロパティを設定できません」というエラーが発生しました
サービス -
.service('getAllCompanies', ['$http', function ($http) {
// AngularJS will instantiate a singleton by calling "new" on this function
var url = "http://localhost:8000/companies/?page=";
this.getCompanies = function(p) {
return $http.get(url+p);
};
}]);
コントローラ -
.controller('CompaniesallCtrl', ['getAllCompanies', function (companiesService) {
var pageNumber = 1;
this.companiesNumber = "";
companiesService.getCompanies(pageNumber)
.then(function(response){
console.log(response.data.count);
this.companiesNumber = response.data.count;
}, function(error) {
console.log(error);
})
}]);
私はコンソールでこのエラーを取得しています -
TypeError: Cannot set property 'companiesNumber' of undefined
at companiesall.js:17
at processQueue (angular.js:16170)
at angular.js:16186
at Scope.$eval (angular.js:17444)
at Scope.$digest (angular.js:17257)
at Scope.$apply (angular.js:17552)
at done (angular.js:11697)
at completeRequest (angular.js:11903)
at XMLHttpRequest.requestLoaded (angular.js:11836)
はconsole.log(response.data.count)を提供します正しい結果であるので、私はなぜそれが未定義であるのか混乱しています。助けてください!
するvar自己=この; self.compainesNumber = ""; companiesService.getCompanies(pageNumber) .then(function(response){ self.companiesNumber = response.data.count; }); –
ありがとうございます、それは動作します。 – doctorsherlock