Я делаю онлайн-учебник, где они учат вас создавать простые веб-приложения с использованием MEAN. Ниже приведен код для редактирования данной коллекции объектов JSON (видео являются объектами JSON здесь) Коллекция находится на /api/videos
Так что я должен нажать на href="/#/video/{{video._id}}
, который приведет меня к form.html, и у меня есть возможность редактировать параметры «название» и «описание» объекта JSON. То, что я не могу понять:Я не могу понять рабочий процесс этого кода
а) Почему это (полный код ниже в вопросе) требуется
var Videos = $resource('/api/videos/:id', { id: '@_id' },
{
update: { method: 'PUT' }
});
Поскольку я на href="/#/video/{{video._id}}
не могу напрямую взять идентификатор из URL-адрес
var Videos=$resource('api/videos)
Videos.get({ id: $routeParams.id }, function(video){
$scope.video = video;
});
б) Whait является рабочим процессом (то есть, когда есть router.get() запрос точно сделал и когда запрос router.put() сделали) по мне, когда я нажимаю на сохранение кнопка Controller делает запрос запроса t API, но я не могу понять, когда делается запрос router.get()
Я пытаюсь прочитать экспресс-и угловую документацию, но они, похоже, не объясняют рабочий процесс. Не могли бы вы также рассказать мне, что я должен прочитать, чтобы лучше понять?
Это form.html код
<h1>Add a Video</h1>
<form>
<div class="form-group">
<label>Title</label>
<input class="form-control" ng-model="video.title"></input>
</div>
<div>
<label>Description</label>
<textarea class="form-control" ng-model="video.description"></textarea>
</div>
<input type="button" class="btn btn-primary" value="Save" ng-click="save()"></input>
</form>
Это код контроллера
app.controller('EditVideoCtrl', ['$scope', '$resource', '$location', '$routeParams',
function($scope, $resource, $location, $routeParams){
var Videos = $resource('/api/videos/:id', { id: '@_id' },
{
update: { method: 'PUT' }
});
Videos.get({ id: $routeParams.id }, function(video){
$scope.video = video;
});
$scope.save = function(){
Videos.update($scope.video, function(){
$location.path('/');
});
}
}]);
Это API Endpoint Code
router.get('/:id', function(req,res){
var collection =db.get('videos');
collection.findOne({_id: req.params.id},function(err,video){
if(err) throw err;
res.json(video);
});
});
router.put('/:id', function(req, res){
var collection=db.get('videos');
collection.update({_id:req.params.id},
{title: req.body.title,
description: req.body.description
},
function (err,video)
{if (err) throw err;
res.json(video);
});
});