2016-08-09 15 views
-1

私はビデオアップロードを行う角度を使って簡単なページを作成していますが、ng-viewを使用すると、私が作成したPOSTメソッドを使用できなくなります。 POSTを通常動作にするためにrouteProviderで何をすべきですか?以下はAngular - routeProvider with Post

私routeProviderとコントローラのコード

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: { 

     } 
    }); 
}); 

コントローラー:

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 = {}; 
    }) 
    } 
}]); 

マイ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

、私はできません私のコードでこれを行う方法をかなり理解しています。 – Nycholas

+0

あなたのPOSTルートに、あなたは 'Upload.create'を持っています、あなたのコレクション名を' Upload'していますか?また、文の間に 'console.log()'を追加して、コードがどこで失敗するかを調べてみてください。 –

答えて

0

あなたはを提供していませんrouteProvider

これを試してみてください:私はまだ学んでいる

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

エラーが続く:POST http:// localhost:3000/public/videos 500(内部サーバーエラー) – Nycholas

+0

エラーコード500は、投稿ルートに問題があることを意味します。実際の問題は何か、バックエンドのルートをチェックインしてください。 'console.log()'を使って、コードが失敗した場所をチェックしながらデバッグすることができます。 –

+0

トピックの冒頭に投稿を挿入して、何が間違っているか教えてもらえますか? – Nycholas