gpt4 book ai didi

angularjs - 如何使用 AngularJS 在 Controller 中调用服务功能?

转载 作者:行者123 更新时间:2023-12-04 18:35:03 24 4
gpt4 key购买 nike

我试图从 Controller 中的服务调用一个函数,但我收到一个错误,说我正在调用的东西不是一个函数。我是 AngularJS 的新手,所以我不确定我做错了什么。那么,在 Controller 中调用服务函数的正确方法是什么?

我正在尝试调用getCurrentUserInfoProfileCtrl

.service('AuthService', function($http, Backand){    
function getCurrentUserInfo() {
return $http({
method: 'GET',
url: baseUrl + "users",
params: {
filter: JSON.stringify([{
fieldName: "email",
operator: "contains",
value: self.currentUser.name
}])
}
}).then(function (response) {
if (response.data && response.data.data && response.data.data.length == 1)
return response.data.data[0];
});
}
})

.controller('ProfileCtrl', ['$scope', '$ionicSideMenuDelegate', 'AuthService', function($scope, $ionicSideMenuDelegate, AuthService) {

AuthService.getCurrentUserInfo().then(function(response){
$scope.user = response.data.data;
});

// function getCurrentUserInfo() {
// AuthService.getCurrentUserInfo()
// .then(function (result) {
// $scope.user = result.data;
// });
// }

}])

最佳答案

您需要将其设为 this 的属性.

   .service('AuthService', function($http, Backand){    
this.getCurrentUserInfo = function() {
return $http({
method: 'GET',
url: baseUrl + "users",
params: {
filter: JSON.stringify([{
fieldName: "email",
operator: "contains",
value: self.currentUser.name
}])
}
}).then(function (response) {
if (response.data && response.data.data && response.data.data.length == 1)
return response.data.data[0];
});
}
})

然后在你的 Controller 中
AuthService.getCurrentUserInfo(whatEverYourParamsAre)

编辑:实际上,让我提供一点上下文。 Angular 应用 new函数到每个 .service(....)你包括在你的 Controller 中。众所周知,在构造函数中调用 this.aFunction 会导致 new javascript 中的运算符来处理 aFunction函数作为构造函数返回的对象的属性。

关于angularjs - 如何使用 AngularJS 在 Controller 中调用服务功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com