如何在ui网格角度选择中获取字符串的值并将其传递给Spring控制器



如何在ui网格角度选择中获取字符串的值并将其传递给Spring控制器。

我什么都试过了,都不管用。

我的JS文件:

var app = angular.module('app', ['ui.grid', 'ui.grid.pagination', 'ui.grid.selection', 'ui.grid.cellNav']);
app.controller(
'StudentCtrl', ['$scope', 'StudentService', '$http',

function ($scope, StudentService) {
var paginationOptions = {
pageNumber: 1,
pageSize: 5,
sort: null
};
StudentService.getStudents(
paginationOptions.pageNumber,
paginationOptions.pageSize).success(function (data) {
$scope.gridOptions.data = data.content;
});
$scope.gridOptions = {
paginationPageSizes: [5, 10, 20],
paginationPageSize: paginationOptions.pageSize,
enableColumnMenus: false,
useExternalPagination: true,
columnDefs: [
{
name: 'id',
field: 'id',
},
{
name: 'productName',
field: 'productName'
},
{
name: 'price',
field: 'price'
},
],

onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
paginationOptions.pageNumber = newPage;
paginationOptions.pageSize = pageSize;
StudentService.getStudents(newPage, pageSize)
.success(function (data) {
$scope.gridOptions.data = data.content;
});
});
}
};
}
]
);
app.service('StudentService', ['$http', function ($http) {
function getStudents(pageNumber, size) {
pageNumber = pageNumber > 0 ? pageNumber - 1 : 0;
return $http({
method: 'GET',
url: 'student/get?page=' + pageNumber + '&size=' + size
});
}
return {
getStudents: getStudents
};
}]);

我的控制器Spring

@PostMapping
public String placeYourOrder(Order order, Model model,
@AuthenticationPrincipal User user,
Map<String, Object> orderNumberModel,
@RequestParam(value="productName")String productName) {
orderService.saveOrder(order, user, productName);
List<Order> orders = orderRepository.findAll();
List<Order> orderNumberByUserName = orderRepository.findOrderNumberByUserName(user.getUsername());
model.addAttribute("orders", orders);
if (Component.isUser()) {
orderNumberModel.put("orderNumber", orderNumberByUserName);
return "orderNumber";
} else return "orderList";
}
}

我需要传递给@RequestParam参数,它根据表中的商品形成订单。

为"productName"列编写模板。由于您没有提到"http调用"是何时进行的,我认为它是在每行单击"productName"时调用的。

请参阅此urlhttp://ui-grid.info/docs/#/教程/教程:%20317%20自定义%20模板

如果你的单元格模板如下

{ field: 'click', cellTemplate: '<div class="btn primary" ng-click="grid.appScope.placeYourOrder(row)"><span ng-bind="row.entity.productName"></span></div>' }

或者,如果您想在单击行中的任何位置时调用服务,则可以选择编写行模板。

您可以将整行传递给方法,只获取所需的字段,形成请求并调用服务。

引用此url以传递RequestParamAngularJS Spring mvc@RequestParam

希望这能有所帮助。

最新更新