从AngularJs的控制器调用服务时,从$ get工厂方法返回一个值

用户名

我试图从控制器调用服务,这给了我下面的错误。提供程序'loginService'必须从$ get工厂方法返回一个值。

下面是我的代码。那我做错了什么。

控制器代码

 app.controller('loginController', ['$scope', '$http', 'loginService', function ($scope, $http, loginService) {
        $scope.checkdata = function () {
            var userName = $scope.username;
            var password = $scope.password;

            //Call the login service
            loginService.validateUser(userName, password);
            alert(response.data);
        }
    }])

服务编号

app.factory('loginService', function ($http) {

            this.validateUser = function (userName, password) {


                var userData = new Object();
                userData.userName = userName;//Data.username;
                userData.password = password;//Data.password;
                return $http({
                    url: "http://localhost:53181/api/User",
                    dataType: 'json',
                    method: 'POST',
                    data: userData,
                    headers: {
                        "Content-Type": "application/json"
                    }
                }).then(function (response) {
                    alert(response);
                    if (response.data && response.data.data && response.data.data.length == 1)
                        return response.data.data[0];
                });
        }
});
比姆伦杜·库马尔(Bimlendu Kumar)
Create service funtcion like this:
yourAPICallingFuntion: function() {
                var url = "your url";
                var deferred = $q.defer();
                $http.get(url, {
                    headers: {
                        'Content-Type': 'application/json',
                        'Accept': 'application/json'
                    }
                }).then(function(data) {
                    deferred.resolve(data.data);
                }, function(error) {
                    deferred.reject(error);
                });
                return deferred.promise;
            }
In Controller Call like this:
loginService.yourAPICallingFuntion().then(function(data){
//Now this will give you response in form of data
//you can this data according to your requirement
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

提供者“ xx”必须在AngularJs中从$ get工厂方法返回一个值

从服务调用方法到控制器

控制器未调用服务方法

一个AngularJS文件中有多少个控制器(服务,工厂,指令)

AngularJS $ http.get服务未将数据返回到调用控制器函数

AngularJS-控制器应该调用服务还是工厂?

在工厂内部调用函数时,如何在另一个控制器中更新$ scope值?

在工厂方法内调用控制器

遵循正确的工厂模式从控制器调用服务方法

静态工厂方法每次调用都会创建一个新对象

从另一个控制器调用控制器时的依赖注入

将服务注入控制器时,“无法在空对象上调用方法”

数据从 spring java 控制器返回到 angularjs 服务时出现 406 错误

没有从控制器调用 GET 服务调用

当控制器在另一个项目中时,get方法不会返回值

当注入的服务上的值更新时,如何更新AngularJS(使用TypeScript)控制器中的值

从AngularJS API服务返回值到控制器

提供者“ xx”必须从$ get工厂方法返回一个值

提供者 'kk' 必须从 $get 工厂方法返回一个值

提供者'UserApi'必须从$ get工厂方法返回一个值

提供者“ LeaderboardService”必须从$ get工厂方法返回一个值

从angularjs中的另一个模块的控制器调用一个模块的控制器功能

从另一个控制器中调用一个控制器内部的函数-AngularJS

在angularjs中的另一个控制器下调用一个控制器

如何从AngularJS中的控制器调用工厂/服务?错误:组件$ injector中的未知提供程序错误

如何从控制器(Junit)调用Springs服务方法

尝试从控制器中调用服务中的方法

AngularJS控制器:如何在另一个控制器中调用一个控制器?

强制AngularJS服务在加载控制器之前返回数据