[
{
"name": "AAAAAA",
"date": "28-03-2016",
},
{
"name": "BBBBBB",
"date": "20-12-2016",
},
{
"name": "CCCCCC",
"date": "09-01-2016",
},
{
"name": "DDDDDD",
"date": "21-07-2016",
}
]
我的 JavaScript:
var app = angular.module('app', []);
app.service('service', function($http, $q){
var deferred = $q.defer();
$http.get('names.json').then(function(data){
deferred.resolve(data);
});
this.getNames = function() {
return deferred.promise;
}
});
app.controller('FirstCtrl', function($scope, service, $http) {
var promise = service.getNames();
promise.then(function (data) {
$scope.names = data.data;
console.log($scope.names);
}
);
$scope.postfunction = function(data) {
$http({
method: 'POST',
url: 'serwerUrl' ,
data: {"name":$scope.name},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data){
console.log('data success');
});
HTML:
<tbody>
<tr ng-repeat="name in names">
<td>{{name.name}}</td>
<td>{{name.date}}</td>
<td><button ng-click="postfunction(names)">POST</button></td>
</tr>
</tbody>
我想要做的是当我单击“POST”按钮时 name.name 发布到服务器。我尝试使用 postfunction() 函数,但它没有发布到服务器,在我的控制台中一切正常,但 name.name 没有发布到服务器。
最佳答案
您尝试发送的 $scope.name
未在任何地方定义。
您需要将此处的names
更改为name
:
...
<td><button ng-click="postfunction(name)">POST</button></td>
...
并在您的 postfunction
中完全放弃 $scope.name
并执行此操作(也使用 .then 而不是 .success,.success 已弃用):
$scope.postfunction = function(name) {
$http({
method: 'POST',
url: 'serwerUrl' ,
data: {"name": name},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.then(function(data){
console.log('data success');
});
}
关于javascript - 将数据发布到服务器 Angular $http post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612190/