【问题标题】:accessing ng-grid using ng-repeat for delete?使用 ng-repeat 访问 ng-grid 进行删除?
【发布时间】:2014-07-10 18:20:44
【问题描述】:

这是我当前的表,暂时忽略全选按钮。

在进行研究和谷歌搜索后,大多数涉及从网格中删除的解决方案在每一行都有单独的删除按钮。出于设计/风格的目的,我反对它。问题出现在 ng-grid 范围之外的应用程序控制器中调用删除函数的删除按钮

  div class="btn-group">
  <button class="my-btn btn-default button-row-provider-medical-services" ng-click="deleteProviderMedicalService(id,$index)">Delete</button>
  </button>
</div>

<div class="gridStyle ngGridTable" ng-grid="gridOptions">
</div>

按钮有2个参数,一个是要从数据库中删除的id,另一个是要删除的行。仅当使用 ng-repeat 显示数据时,才能直截了当。

我的问题是是否可以使用 ng-repeat 访问 ng-grid 数据?检查 jdom 显示行和列是使用 ng-repeat 呈现的,并且表本身位于 ng-Viewport ng-scope 类下。

【问题讨论】:

  • 是否只需要删除选中复选框的行?
  • 是的!大多数在线解决方案都涉及单次删除
  • deleteProviderMedicalService 和 ngGrid 的选项是否存在于同一范围内?
  • 不幸的是,在 ng-grid 之外不存在删除
  • 是否在父作用域中声明?

标签: javascript angularjs


【解决方案1】:

您可以从 ngGrid 的 selectedItems 属性中获取选定对象。此外,您可以从选定的对象及其在数据源数组中的索引中获取 id,并将此数据传递给每个选定项目的 deleteProviderMedicalService 函数。

var selectedItems = [];

$scope.gridOptions = {
  data: 'myData',
  showSelectionCheckbox: true,
  selectedItems: selectedItems
};

$scope.deleteSelected = function(){
  angular.forEach(selectedItems, 
     function(svc){ $scope.deleteProviderMedicalService(svc.id, myData.ondexOf(svc)); });
};

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2016-05-29
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多