2016-08-09 4 views
-1

Ich mache eine einfache Seite mit eckigen, wo ich Video hochladen, aber wenn ich die ng-Ansicht, kann ich nicht mehr die Methode POST ich erstellt verwenden. Was soll ich in routeProvider für den POST zum normalen Betrieb tun?Angular - routeProvider mit Beitrag

Unten finden Sie meine routeProvider und Controller-Code

app.js:

angular.module('videoUpload', ['ngFileUpload', 'ngRoute']); 

angular.module("videoUpload").config(function ($routeProvider) { 
    $routeProvider.when("/videolist", { 
     templateUrl: "/views/videolist.html", 
    }); 
    $routeProvider.when("/videoinsert", { 
     templateUrl: "/views/videoinsert.html", 
     resolve: { 

     } 
    }); 
}); 

Controller:

angular.module("videoUpload"). 
controller('videoUploadController', ['$http', 'Upload', '$scope', function($http, Upload, $scope){ 

    $http.get('/public/videos').then(function(response){ 
    console.log(response.data); 
    $scope.videos = response.data; 
    }); 

    $scope.submit = function(){ 
    Upload.upload({ 
     url: '/public/videos', 
     method: 'post', 
     data: $scope.upload 
    }).then(function (response) { 
     console.log(response.data); 
     $scope.videos.push(response.data); 
     $scope.upload = {}; 
    }) 
    } 
}]); 

Mein POST:

router.post('/videoinsert', video.single('file'), function (req, res, next) { 
    console.log(req.body); 
    console.log(req.file); 
    var newUpload = { 
    title: req.body.title, 
    author: req.body.author, 
    description: req.body.description, 
    created_at: Date.now(), 
    file: req.file 
    }; 
    Upload.create(newUpload, function (err, next) { 
    if (err) { 
     next(err); 
    } else { 
     res.send(newUpload); 
    } 
    }); 
}); 
+0

http://stackoverflow.com/questions/23423284/post-request-in-an-angularjs-single-page-application – oguzhan00

+0

Ich lerne immer noch, ich kann nicht verstehe ganz, wie man das in meinem Code macht. – Nycholas

+0

In Ihrer POST-Route haben Sie 'Upload.create', ist das der Name Ihrer Sammlung? Und versuchen Sie, mehr 'console.log()' zwischen Anweisungen zu geben, um herauszufinden, wo genau Ihr Code fehlschlägt. –

Antwort

0

Sie bieten nicht Controller in Ihrem routeProvider.

Try this:

angular.module("videoUpload").config(function ($routeProvider) { 
    $routeProvider.when("/videolist", { 
     templateUrl: "/views/videolist.html", 
     //use controller here also,if required 

    }); 
    $routeProvider.when("/videoinsert", { 
     templateUrl: "/views/videoinsert.html", 
     // assuming 'videoUploadController' is the controller used in this case 
     controller : 'videoUploadController', 
     resolve: { 

     } 
    }); 
}); 
+0

Der Fehler bleibt bestehen: POST http: // localhost: 3000/öffentliche/Videos 500 (Interner Server Fehler) – Nycholas

+0

Fehlercode 500 bedeutet, es gibt ein Problem in Ihrem Post-Route. Überprüfen Sie in der Back-End-Route, was ist das eigentliche Problem. Sie können 'console.log()' verwenden, um zu debuggen, während Sie nach der Stelle suchen, an der Ihr Code fehlschlägt. –

+0

Ich habe meinen Beitrag am Anfang des Themas eingefügt, könnte mir helfen, mir zu sagen, was los ist? – Nycholas

Verwandte Themen