【发布时间】:2015-02-07 19:56:51
【问题描述】:
我创建了一个返回 $http 承诺的工厂。
loginRsrc.factory('loginSrvc', ['$http', function($http){
var http = $http({
method: 'POST',
url: "http://myproj.herokuapp.com/api/signIn",
data: $.param({email: "joe@gmail.com", password: "1234567"}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
return http;
我在控制器中使用这个工厂。但我的行为很有趣。
当我说
loginSrvc()
.success(function(res){
console.log("res:");
console.log(res);
})
.error(function(res){
console.log("res");
console.log(res);
});
我收到 TypeError: object is not a function 的错误。
但是当我说(省略括号)时
loginSrvc
.success(function(res){
console.log("res:");
console.log(res);
})
.error(function(res){
console.log("res");
console.log(res);
});
效果很好!成功打印到控制台。
我无法理解这种奇怪的行为。只是添加一个success 函数调用$http 活动?
这是我的完整控制器:
loginApp.controller('loginCtrl', ['$scope', '$state', 'loginSrvc', function($scope, $state, loginSrvc){
$scope.loginForm = {};
$scope.loginForm.email = "";
$scope.loginForm.password = "";
$scope.submit = function(){
loginSrvc
.success(function(res){
console.log("res:");
console.log(res);
})
.error(function(res){
console.log("res");
console.log(res);
});
}
}])
【问题讨论】:
标签: javascript angularjs angular-promise angular-http