Javascript 角度Js语法错误

Javascript 角度Js语法错误,javascript,angularjs,Javascript,Angularjs,我有以下工厂: (function() { angular.module('temp') .factory('Factory',Factory); employeeFactory.$inject = ['$http']; function employeeFactory($http) { var factory = {}; var vm = this; factory.login = function(email,pas

我有以下工厂:

(function() {
angular.module('temp')
    .factory('Factory',Factory);

    employeeFactory.$inject = ['$http'];
    function employeeFactory($http) {
        var factory = {};
        var vm = this;

        factory.login = function(email,password) {
            return $http({
                'method': 'POST',
                'url': 'http://domain.dev/api/v1/login',
                'data': $.param({
                    'email': email,
                    'password': password
                }),
                'headers': {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            });
        return factory;
    }
})();
我收到错误消息:

Uncaught SyntaxError: Unexpected token )
控制台指的是最后一行:

})();

通过代码格式化程序运行代码以修复空白。问题变得显而易见

(function() {
        angular.module('skindustries')
            .factory('employeeFactory', employeeFactory);

        employeeFactory.$inject = ['$http'];

        function employeeFactory($http) {
            var factory = {};
            var vm = this;

            factory.login = function(email, password) {
                return $http({
                    'method': 'POST',
                    'url': 'http://domain.dev/api/v1/login',
                    'data': $.param({
                        'email': email,
                        'password': password
                    }),
                    'headers': {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                });
                return factory;
            }
        })();
最后一个
}
,您试图使用它来关闭从第1行开始的函数表达式,实际上正在关闭
employeeFactory
函数

然后需要另一个
}
来关闭从第1行开始的函数表达式,然后才能使用
来匹配脚本的第一个字符


您可能希望将它放在
返回工厂之前;
语句,因为它看起来像是缺少的
}
属于您分配给
工厂的匿名函数。登录

通过代码格式化程序运行代码以修复空白。问题变得很明显

(function() {
        angular.module('skindustries')
            .factory('employeeFactory', employeeFactory);

        employeeFactory.$inject = ['$http'];

        function employeeFactory($http) {
            var factory = {};
            var vm = this;

            factory.login = function(email, password) {
                return $http({
                    'method': 'POST',
                    'url': 'http://domain.dev/api/v1/login',
                    'data': $.param({
                        'email': email,
                        'password': password
                    }),
                    'headers': {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                });
                return factory;
            }
        })();
最后一个
}
,您试图使用它来关闭从第1行开始的函数表达式,实际上正在关闭
employeeFactory
函数

然后需要另一个
}
关闭在第1行开始的函数表达式,然后才能有
以匹配脚本的第一个字符


您可能希望将它放在
返回工厂之前;
语句,因为它看起来像是缺少的
}
属于您分配给
工厂的匿名函数。登录

您在返回工厂之前缺少的}

(function() {
  angular.module('skindustries')
    .factory('employeeFactory', employeeFactory);

  employeeFactory.$inject = ['$http'];

  function employeeFactory($http) {
    var factory = {};
    var vm = this;

    factory.login = function(email, password) {
      return $http({
        'method': 'POST',
        'url': 'http://domain.dev/api/v1/login',
        'data': $.param({
          'email': email,
          'password': password
        }),
        'headers': {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      });
    }
    return factory;
  }
})();

你在返回工厂前失踪了}

(function() {
  angular.module('skindustries')
    .factory('employeeFactory', employeeFactory);

  employeeFactory.$inject = ['$http'];

  function employeeFactory($http) {
    var factory = {};
    var vm = this;

    factory.login = function(email, password) {
      return $http({
        'method': 'POST',
        'url': 'http://domain.dev/api/v1/login',
        'data': $.param({
          'email': email,
          'password': password
        }),
        'headers': {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      });
    }
    return factory;
  }
})();

您错过了一个
}

试试这个:

(function() {
    angular.module('skindustries').factory('employeeFactory', employeeFactory);
    employeeFactory.$inject = ['$http'];
    function employeeFactory($http) {
        var factory = {};
        var vm = this;
        factory.login = function(email, password) {
            return $http({
                'method': 'POST',
                'url': 'http://domain.dev/api/v1/login',
                'data': $.param({
                'email': email,
                'password': password
                }),
                'headers': {
                'Content-Type': 'application/x-www-form-urlencoded'
                }
            });
        }   
        return factory;
    }
})();

您错过了一个
}

试试这个:

(function() {
    angular.module('skindustries').factory('employeeFactory', employeeFactory);
    employeeFactory.$inject = ['$http'];
    function employeeFactory($http) {
        var factory = {};
        var vm = this;
        factory.login = function(email, password) {
            return $http({
                'method': 'POST',
                'url': 'http://domain.dev/api/v1/login',
                'data': $.param({
                'email': email,
                'password': password
                }),
                'headers': {
                'Content-Type': 'application/x-www-form-urlencoded'
                }
            });
        }   
        return factory;
    }
})();

我将用这个函数替换自调用函数,以使其更具可读性

 (function() {
    angular.module('skindustries').factory('employeeFactory', ['$http', function ($http) {

      function login(email, password) {
        return $http({
            'method': 'POST',
            'url': 'http://domain.dev/api/v1/login',
            'data': $.param({
            'email': email,
            'password': password
          }),
         'headers': {
           'Content-Type': 'application/x-www-form-urlencoded'
         }
       });
     }


    // expose public api
    return {
      login: login
    };
  }])}); 

这是一个非常好的指南,我将用它替换自调用函数,使其更具可读性

 (function() {
    angular.module('skindustries').factory('employeeFactory', ['$http', function ($http) {

      function login(email, password) {
        return $http({
            'method': 'POST',
            'url': 'http://domain.dev/api/v1/login',
            'data': $.param({
            'email': email,
            'password': password
          }),
         'headers': {
           'Content-Type': 'application/x-www-form-urlencoded'
         }
       });
     }


    // expose public api
    return {
      login: login
    };
  }])}); 

下面是一个非常好的指南,介绍了
工厂内部的两个return语句的含义。登录
?感谢您的帮助!@JenishRabadiya-第一个
return
基本上返回了
POST
请求的结果响应。而第二个
return
;returns |公开了工厂及其as在上面的示例中,您公开了
登录(u,p)
将此服务作为依赖项注入控制器|服务等时,应用程序中的其他组件的功能。@Simple Solution No.这是不正确的,我相信行
返回工厂;
将永远不会执行。请仔细查看代码。返回语句后跟另一个返回语句。我会将该语句标记为我nt作为不可访问的代码。在
工厂内的两个return语句的含义是什么。login
?感谢您的帮助!@JenishRabadiya-第一个
return
基本上返回来自
POST
请求的结果响应。而第二个
return
;returns |公开工厂及其相关api的pu在上面的例子中,您公开了
登录(u,p)
将此服务作为依赖项注入控制器|服务等时,应用程序中的其他组件的功能。@Simple Solution No.这是不正确的,我相信行
返回工厂;
将永远不会执行。请仔细查看代码。返回语句后跟另一个返回语句。我会将该语句标记为我nt作为无法访问的代码。这将出错。JS提示报告:应为标识符,而不是看到“')。@Quentin Yup我修复了它。这将出错。JS提示报告:需要一个标识符,而不是看到“')。@Quentin Yup我修复了它。