Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 供应商';用户API';必须从$get factory方法返回一个值_Javascript_Angularjs - Fatal编程技术网

Javascript 供应商';用户API';必须从$get factory方法返回一个值

Javascript 供应商';用户API';必须从$get factory方法返回一个值,javascript,angularjs,Javascript,Angularjs,在我的工厂 var UserService = angular.module('UserService', []); UserService.factory('UserApi', function ($http) { var baseUrl = "http://localhost:59844/api"; var UserApi = {}; UserApi.getUsers = function () { return $http.get(baseUrl + '/Use

在我的工厂

var UserService = angular.module('UserService', []);

UserService.factory('UserApi', function ($http) {
var baseUrl = "http://localhost:59844/api";
var UserApi = {};

    UserApi.getUsers = function () {
        return $http.get(baseUrl + '/UserLogins');
    };
}); 
在我的控制器中:

var myApp = angular.module('MyApp', ['ngRoute','UserService']);
myApp.controller('HomeController', function ($scope, UserApi) {
getUsers();
function getUsers(){
    UserApi.getUsers.success(function (users) {
            $scope.users = users;
        }).error(function (error) {
            $scope.status = "Couldn't load data";
        })
    }
});

看起来UserApi没有返回任何值。但是无法获取它为什么?

您还需要返回服务对象

var UserService = angular.module('UserService', []);

UserService.factory('UserApi', function ($http) {
    var baseUrl = "http://localhost:59844/api";
    var UserApi = {};

    UserApi.getUsers = function () {
        return $http.get(baseUrl + '/UserLogins');
    };

    return UserApi;
});

成功了。现在我面临控制器的问题。它说“UserApi.getUsers.success不是一个函数”。@JaowatRaihan$http返回一个承诺,用“then”代替success