Javascript 如何将$scope传递给$factory

Javascript 如何将$scope传递给$factory,javascript,angularjs,Javascript,Angularjs,嗨,我是angular js中的新手,我想将空的$scope传递给我的$factory,以便动态登录,我使用$http获取API中的数据。我尝试将作用域放入工厂,但没有成功 这是我的服务API (function() { "use strict"; angular.module('starter').factory(serviceAPI', function($http, $q, $ionicLoading, $timeout) { function ge

嗨,我是angular js中的新手,我想将空的$scope传递给我的$factory,以便动态登录,我使用$http获取API中的数据。我尝试将作用域放入工厂,但没有成功

这是我的服务API

(function() {
    "use strict";

    angular.module('starter').factory(serviceAPI', function($http, $q, $ionicLoading, $timeout) {



        function getData() {
            var deferred = $q.defer();
            $ionicLoading.show({ template: 'Loading...' });
            var url = "myAPI";

            var data = {
                username: "admin", <-- this is the one I want to dynamic it
                password: "admin" <--
            };

            $http({
                method: 'POST',
                url: url,
                data: data


            }).success(function(data) {

                $ionicLoading.hide();
                deferred.resolve(data);

            }).error(function() {
                console.log('Error while making HTTP call');
                $ionicLoading.hide();
                deferred.reject();

            });

            return deferred.promise;
        }


        //a Return value to public
        return {
            getData: getData,


        };


    })

}());
at服务api

function getData(userNameIn, passwordIn) {
//...
var data = {
username: userNameIn,
password: passwordIn
};   //...}
at控制器

…在服务api上

function getData(userNameIn, passwordIn) {
//...
var data = {
username: userNameIn,
password: passwordIn
};   //...}
at控制器


什么$scope?您没有在上述代码中的任何地方传递作用域。无论如何,通过范围不是一个好的做法。您试图实现的是什么?您的控制器负责将视图和数据层粘合在一起。您的视图和数据层应该彼此不知道。这意味着,通过在视图和数据层之间创建依赖关系,将范围传递给工厂将违反MVC体系结构。所以,只需在当前记录数据的控制器内填充您的作用域。什么$scope?您没有在上述代码中的任何地方传递作用域。无论如何,通过范围不是一个好的做法。您试图实现的是什么?您的控制器负责将视图和数据层粘合在一起。您的视图和数据层应该彼此不知道。这意味着,通过在视图和数据层之间创建依赖关系,将范围传递给工厂将违反MVC体系结构。因此,只需在当前正在记录数据的控制器内填充范围。
$scope.username = "";
$scope.password = "";
$scope.login = function() {            
serviceAPI.getData($scope.username,$scope.password).then(function(data) {
console.log(data)
});

}