Angular新手,我没有运气到达这个底部。我正在尝试向我的RESTful Web服务发送更新调用。我正在传递和int和一个对象。在Web服务上调试时,int很好,但是对象总是为NULL。调用之前的调试显示对象具有值。为什么我在Web服务中为对象获取NULL?
我尝试过来自工厂以及保存功能。调用Web服务时,两者都为null。
的 app.js 的
TournamentDirectorApp.factory('tournamentFactory', function () {
return {
addUserToTournament: function (id, tourney, user, Tournament) {
tourney.Users.push(user)
var response = Tournament.update({ id: id }, { tourney: tourney })
return tourney;
}
};
});
$scope.save = function () {
var updatedTournament = tournamentFactory.addUserToTournament(id, selectedTourney, $scope.selectedUser, Tournament);
Tournament.update({ id: id }, { tournament: updatedTournament }, function () {
$location.path('/')
});
};
网络服务
public HttpResponseMessage PutTournament(int id, Tournament tournament)
{
if (ModelState.IsValid && id == tournament.TournamentId)
{
db.Entry(tournament).State = EntityState.Modified;
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
*锦标赛对象*
public class Tournament
{
public int TournamentId { get; set; }
public string Director { get; set; }
public string Description { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public virtual List<Classification> Classifications { get; set; }
public virtual List<User> Users { get; set; }
}
* app.js(更新路由)*
TournamentDirectorApp.factory('Tournament', function ($resource) {
return $resource('/api/tournament/:id', { id: '@id' }, {update: { method: 'PUT' }});
});
答案 0 :(得分:0)
基于角度文档中的“更新”示例,我认为问题是您应该只发送带有更新请求的updatedTournament,而不是包装已更改对象的对象。尝试:
Tournament.update({ id: id }, updatedTournament, function () {
$location.path('/') })
保存功能中的。