我有以下工厂:
(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 )
控制台引用最后一行:
})();
答案 0 :(得分:5)
通过代码格式化程序运行代码以修复空白。问题变得很明显。
(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行开始的函数表达式,然后才能使)
与作为脚本第一个字符的(
匹配。
您可能希望将其放在return factory;
语句之前,因为看起来缺少的}
是属于您分配给factory.login
的匿名函数的那个。
答案 1 :(得分: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;
}
})();
答案 2 :(得分:0)
你在返回工厂之前就已经失踪了
(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;
}
})();
答案 3 :(得分:0)
我会用这个替换自调用函数,使其更具可读性。
(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
};
}])});
为John Papa提供了非常好的指南