2017-01-07 3 views
0

Hallo hier ist mein json "Namen":HTTP GET und POST Angular

[ 
    { 
     "file": "file1.zip", 
     "date": "12-03-2016", 
    }, 
    { 
     "file": "file2.zip", 
     "date": "24-06-2016", 
    }, 
    { 
     "file": "file3.zip", 
     "date": "02-12-2016", 
    }] 

Meine JavaScript-Datei:

var app = angular.module('app', []); 
    app.service('service', function($http, $q){ 
     var deferred = $q.defer(); 

     $http.get('newapi.json').then(function(data){ 
      deferred.resolve(data); 
     }); 

     this.getNames = function(){ 
      return deferred.promise; 
     } 
    }); 
    app.controller('FirstCtrl', function($scope, service){ 
     var promise = service.getNames(); 
     promise.then(function(data){ 
      $scope.names = data.data; 
      $scope.namesplit = $scope.names; 
      $scope.namesplit.map(function(item) { 
       item.time = new Date(item.date * 1000); 
      }); 
      console.log($scope.namesplit); 
     }); 
     }); 

und HTML:

<tr ng-repeat="name in names"> 
    <td>{{name.file}}</td> 
    <td>{{name.date}}</td> 
    <td><button>POST</button></td> 
</tr> 

Nun, ich habe eine Tabelle und Was ich brauche, ist, wenn ich auf den Button klicke, den "File" -Posten an serwer. Ich weiß, dass ich $ http.post benutzen muss, aber ich weiß nicht, wie man es macht.

+0

Sie möchten eine Datei (z. B. Datei1.zip) auf einen Server hochladen? – conventi

+0

@conventi ja, nach dem Klick auf die Schaltfläche. – bafix2203

+0

https://docs.angularjs.org/api/ng/service/$http#post –

Antwort

0

So Simple Html

<button ng-click="post()">Click Me</button> 

-Controller

$scope.post=function(){ 
$http.post(URL HERE, data-here, {  
}) 
    .then(function onSuccess(response) { 
    // Handle success 
    var data = response.data; 
    var status = response.status; 
    var statusText = response.statusText; 
    var headers = response.headers; 
    var config = response.config; 
    ... 
    }). 
    catch(function onError(response) { 
    // Handle error 
    var data = response.data; 
    var status = response.status; 
    var statusText = response.statusText; 
    var headers = response.headers; 
    var config = response.config; 
    ... 
    }); 
    } 
+0

Es tut mir leid. Ich habe das Wort Datei nicht gesehen. –

+0

Ich kommentiere hier, weil ich nicht genug Ruf hatte –

0

für das Hochladen einer Datei mit $http.post() Funktion können Sie einige zusätzliche Parameter wie headers und und transformRequest setzen müssen.

Hier ein einfaches Beispiel:

$scope.postToServer = function(){ 
    var fd = new FormData(); 
    fd.append('file', file); 
    $http.post(uploadUrl, fd, { 
     transformRequest: angular.identity, 
     headers: {'Content-Type': undefined} 
    }) 
    .success(function(){ 
    }) 
    .error(function(){ 
    }); 
} 

Hinweis: in diesem Beispiel wird die Datei var ist der Inhalt der auf dem Client-Dateisystem-Datei und die uploadUrl ist die URL des Dienstes, den die Anforderung verarbeiten.