Angularjs Post方法
这里是HTML:Angularjs Post方法,angularjs,angularjs-scope,Angularjs,Angularjs Scope,这里是HTML: .controller('LoginConnect', ['$scope', 'connecting', function(connecting, $scope){ $scope.user = {}; var inputLogin = $scope.user.login; var inputPassword = $scope.user.password; $scope.connect = function (){ connecting
.controller('LoginConnect', ['$scope', 'connecting',
function(connecting, $scope){
$scope.user = {};
var inputLogin = $scope.user.login;
var inputPassword = $scope.user.password;
$scope.connect = function (){
connecting(ConnectingFactory);
};
}
])
.factory('connecting', ['$http','$q', function ($http,$q,inputLogin, inputPassword, ConnectingFactory){
var ConnectingFactory = {};
console.log(ConnectingFactory);
ConnectingFactory.login = function(){
var deferred = $q.defer();
$http({
method: 'POST',
url: "http://api.tiime-ae.fr/0.1/request/login.php",
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: {login: inputLogin, password: inputPassword}
})
.success(function(result){
deferred.resolve(result);
var promise = deferred.promise;
promise.then(function(result){
console.log(result);
// jsonTab = angular.fromJson(result);
// $scope.result = result["data"];
// $scope.user.token = result["data"];
});
})
};
return ConnectingFactory;
}]);
;
输入您的姓名:
输入您的密码:
resulttat:{{result}
令牌:{{mytoken}}
数据:{{datab}
您好,我是Angular Js开发的新手,我没有错误,但没有发送到API的任何数据。我认为它们在我的函数“connect()”和工厂之间没有任何联系。你能帮我吗?无论哪种方法都不要使用成功方法。这两种方法都已被弃用 $http legacy promise方法的成功和错误已被删除 不赞成。改用标准then方法。如果 $httpProvider.useLegacyPromiseExtensions设置为false,则这些 方法将抛出$http/legacy错误 这是捷径
<!-- User Connection -->
<form name="userConnect" ng-submit="connect()" novalidate ng-controller="LoginConnect">
<label>
Enter your name:
<input type="text"
name="myEmail"
ng-model="user.login"
/>
</label>
<label>
Enter your Password:
<input type="password"
name="password"
ng-model="user.password"
/>
</label>
<input type="submit" value="Connection">
<p>resultat : {{result}}</p>
<p ng-model="user.token">
token : {{mytoken}}
</p>
<p ng-model="user.datab">
datas : {{datab}}
</p>
<br><br><br>
</form>
下面是一个较长的GET
方法示例
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
关于工厂,请正确地将其称为ConnectingFactory.login()
此外,正如哈里所指出的,这里的顺序是不正确的
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
无论哪种方法都不要使用success方法。这两种方法都已被弃用 $http legacy promise方法的成功和错误已被删除 不赞成。改用标准then方法。如果 $httpProvider.useLegacyPromiseExtensions设置为false,则这些 方法将抛出$http/legacy错误 这是捷径
<!-- User Connection -->
<form name="userConnect" ng-submit="connect()" novalidate ng-controller="LoginConnect">
<label>
Enter your name:
<input type="text"
name="myEmail"
ng-model="user.login"
/>
</label>
<label>
Enter your Password:
<input type="password"
name="password"
ng-model="user.password"
/>
</label>
<input type="submit" value="Connection">
<p>resultat : {{result}}</p>
<p ng-model="user.token">
token : {{mytoken}}
</p>
<p ng-model="user.datab">
datas : {{datab}}
</p>
<br><br><br>
</form>
下面是一个较长的GET
方法示例
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
关于工厂,请正确地将其称为ConnectingFactory.login()
此外,正如哈里所指出的,这里的顺序是不正确的
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
在第二行而不是此函数(connecting,$scope){TRY function($scope,connecting){按注入顺序。$scope.connect=function(){connecting.login();};在第二行而不是此函数(connecting,$scope){TRY function($scope,connecting){按注入顺序。$scope.connect=function(){connecting.login());};