Angular 的新手 - 如何从 table 中删除选定的值
New to Angular - How to Remove a selected value from a table
我正在尝试使用此 jboss 快速入门学习一些基础 AngularJS:https://github.com/jboss-developer/jboss-wfk-quickstarts/tree/c488a5b/kitchensink-angularjs-bootstrap
这是 service.js 文件:
angular.module('membersService', ['ngResource']).
factory('Members', function($resource){
return $resource('rest/members/:memberId', {});
});
很简单,对吧?这是 controllers.js 文件的相关部分:
$scope.register = function() {
Members.save($scope.newMember, function(data) {}, function(result) {});
};
$scope.setSelected = function (member) {
$scope.selectedMember = member;
$scope.successMessages = [ $scope.selectedMember.name ];
}
$scope.unregister = function() {
$scope.successMessages = [ 'Selected: ' + $scope.selectedMember.name ];
Members.remove($scope.selectedMember, function(data) {}, function(result) {});
};
"successMessages" 正在确认我选择的值已被捕获。以下是 MemberResourceRESTService.java class 中的相关 POST/DELETE 方法:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createMember(Member member) {
Response.ResponseBuilder builder = null;
try {
registration.register(member);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}
@DELETE
@Produces(MediaType.APPLICATION_JSON)
public Response removeMember(Member member) {
Response.ResponseBuilder builder = null;
try {
registration.unregister(member);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}
基本上 POST/Create Member 部分在工作,但是 DELETE/Remove Member Rest 方法正在传入一个 NULL Member。我不确定为什么它没有从客户端传过来,以及我需要检查的额外内容 file/config。如果这是一个新手问题,我们深表歉意。
在 Hoyen 的评论的帮助下,我能够执行两个修改来解决问题:
1) 在 controllers.js 文件中,我必须将 $scope.unregister 函数修改为如下所示:
$scope.unregister = function() {
Members.remove({ memberId : $scope.selectedMemberId });
}
2) 我必须修改我的 RestService 以包含 Id PathParam:
@Path("/{memberId}")
@DELETE
public Response removeMember(@PathParam("memberId") long memberId) {
Response.ResponseBuilder builder = null;
try {
registration.unregister(memberId);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}
我正在尝试使用此 jboss 快速入门学习一些基础 AngularJS:https://github.com/jboss-developer/jboss-wfk-quickstarts/tree/c488a5b/kitchensink-angularjs-bootstrap
这是 service.js 文件:
angular.module('membersService', ['ngResource']).
factory('Members', function($resource){
return $resource('rest/members/:memberId', {});
});
很简单,对吧?这是 controllers.js 文件的相关部分:
$scope.register = function() {
Members.save($scope.newMember, function(data) {}, function(result) {});
};
$scope.setSelected = function (member) {
$scope.selectedMember = member;
$scope.successMessages = [ $scope.selectedMember.name ];
}
$scope.unregister = function() {
$scope.successMessages = [ 'Selected: ' + $scope.selectedMember.name ];
Members.remove($scope.selectedMember, function(data) {}, function(result) {});
};
"successMessages" 正在确认我选择的值已被捕获。以下是 MemberResourceRESTService.java class 中的相关 POST/DELETE 方法:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createMember(Member member) {
Response.ResponseBuilder builder = null;
try {
registration.register(member);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}
@DELETE
@Produces(MediaType.APPLICATION_JSON)
public Response removeMember(Member member) {
Response.ResponseBuilder builder = null;
try {
registration.unregister(member);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}
基本上 POST/Create Member 部分在工作,但是 DELETE/Remove Member Rest 方法正在传入一个 NULL Member。我不确定为什么它没有从客户端传过来,以及我需要检查的额外内容 file/config。如果这是一个新手问题,我们深表歉意。
在 Hoyen 的评论的帮助下,我能够执行两个修改来解决问题:
1) 在 controllers.js 文件中,我必须将 $scope.unregister 函数修改为如下所示:
$scope.unregister = function() {
Members.remove({ memberId : $scope.selectedMemberId });
}
2) 我必须修改我的 RestService 以包含 Id PathParam:
@Path("/{memberId}")
@DELETE
public Response removeMember(@PathParam("memberId") long memberId) {
Response.ResponseBuilder builder = null;
try {
registration.unregister(memberId);
builder = Response.ok();
} catch (Exception e) {}
return builder.build();
}