【发布时间】:2014-07-10 03:30:56
【问题描述】:
我有一个带有 ng-grid 的表,问题是我不确定如何收集选定的行 ID 或变量以传递给我的删除函数。
这是我正在尝试做的快速模型
http://plnkr.co/edit/zy653RrqHmBiRJ7xDHlV?p=preview
以下代码来自我的 html,一个可点击的删除按钮,它接受 2 个参数、复选框 ID 数组和对应表的索引。这个删除方法是从本教程中获得的:http://alexpotrykus.com/blog/2013/12/07/angularjs-with-rails-4-part-1/
<div class="btn-group">
<button class="my-btn btn-default button-row-provider-medical-services" ng-click="deleteProviderMedicalService([], $index)">Delete</button>
</button>
</div>
<div class="gridStyle ngGridTable" ng-grid="gridOptions">
</div>
以下代码从 url 中获取 json 数据,查询并返回。它还包含从 html 页面中的控制器调用的删除函数。
app.factory('ProviderMedicalService', ['$resource', function($resource) {
function ProviderMedicalService() {
this.service = $resource('/api/provider_medical_services/:providerMedicalServiceId', {providerMedicalServiceId: '@id'});
};
ProviderMedicalService.prototype.all = function() {
return this.service.query();
};
ProviderMedicalService.prototype.delete = function(providerId) {
this.service.remove({providerMedicalServiceId: providerId});
};
return new ProviderMedicalService;
}]);
以下是我的控制器(不是所有内容,只是最重要的部分)。 $scope.provider_medical_services 获取 json 数据并将其放入 ng-grid gridOptions。 在阅读了 ng-grid 文档之后,我必须以某种方式从 selectedItems 数组中传递复选框 id,并将其传递到 html doc 到 delete 函数。或者,我只是做错了,因为我一起破解了这个。非常感谢您的解决方案和建议
(function() {
app.controller('ModalDemoCtrl', ['$scope', 'ProviderMedicalService', '$resource', '$modal', function($scope, ProviderMedicalService, $resource, $modal) {
var checkBoxCellTemplate = '<div class="ngSelectionCell"><input tabindex="-1" class="ngSelectionCheckbox" type="checkbox" ng-checked="row.selected" /></div>';
$scope.provider_medical_services = ProviderMedicalService.all();
$scope.deleteProviderMedicalService = function(ids,idx) {
$scope.provider_medical_services.splice(idx, 1);
return ProviderMedicalService.delete(ids);
};
$scope.gridOptions = {
columnDefs: [
{
cellTemplate: checkBoxCellTemplate,
showSelectionCheckbox: true
},{
field: 'name',
displayName: 'CPT Code/Description'
},{
field: 'cash_price',
displayName: 'Cash Price'
},{
field: 'average_price',
displayName: 'Average Price'
},
],
data: 'provider_medical_services',
selectedItems: []
};
【问题讨论】:
标签: javascript jquery ruby-on-rails json angularjs