0
达到出厂功能范围我有一个NG-电网及其选项如下:所以有在细胞按钮如何AngularJS
$scope.gridOptions = {
enableRowSelection: true,
enableSelectAll: true,
selectionRowHeaderWidth: 35,
rowHeight: 35,
showGridFooter: false,
enableColumnMenus: false,
enableSorting: true,
enableFiltering: true,
columnDefs: [
{
name: "",
field: "fake",
cellTemplate: '<div class="ui-grid-cell-contents" >' +
'<button value="Edit" ng-if="!row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.deleteRow($event)">Delete</button>' +
'<button value="Edit" ng-if="!row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.enterEditMode($event)">Edit</button>' +
'<button value="Edit" ng-if="row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.saveEdit($event)">Update</button>' +
'<button value="Edit" ng-if="row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.cancelEdit($event)">Cancel</button>' +
'</div>',
enableCellEdit: false,
enableFiltering: false,
enableSorting: false,
showSortMenu: false,
enableColumnMenu: false,
width: "10%"
},
{
name: 'Id',
visible: false
},
{
name: 'Key',
enableCellEdit: true,
cellTemplate: '<div class="ui-grid-cell-contents"><div ng-class="{\'viewr-dirty\' : row.inlineEdit.entity[col.field].isValueChanged }">{{row.entity[col.field]}}</div></div>',
width: "30%"
},
{
name: 'Value',
enableCellEdit: true,
cellTemplate: '<div class="ui-grid-cell-contents"><div ng-class="{\'viewr-dirty\' : row.inlineEdit.entity[col.field].isValueChanged }">{{row.entity[col.field]}}</div></div>',
width: "30%"
}
]
}
我使用在线编辑。其中一个按钮是删除。当我点击这个按钮时,记录从数据库中删除。不过,我希望在删除操作完成后刷新网格。我调用函数从工厂:
angular.module('ui.grid').factory('InlineEdit', function ($interval, $rootScope, $mdDialog, LocalizationService, AlertDialogFactory) {
function inlineEdit(entity, index, grid) {
this.grid = grid;
this.index = index;
this.entity = {};
this.isEditModeOn = false;
this.init(entity);
}
inlineEdit.prototype = {
init: function (rawEntity) {
var self = this;
for (var prop in rawEntity) {
self.entity[prop] = {
value: rawEntity[prop],
isValueChanged: false,
isSave: false,
isCancel: false,
isEdit: false
}
}
},
deleteRow: function (event) {
event && event.stopPropagation();
var self = this;
self.isEditModeOn = false;
for (var prop in self.entity) {
self.entity[prop].isSave = true;
self.entity[prop].isEdit = false;
}
LocalizationService.deleteRow(self.grid.rows[self.index]).then(function (result) {
if (result.data.IsOk) {
// CODE HERE...
}
else {
AlertDialogFactory.ShowAlertDialog(result.data.Message, "ERROR");
}
});
},
}
return inlineEdit;
})
如果result.data.IsOk
是真实的,我怎么能刷新gridOptions.data
从工厂函数?我怎样才能从工厂范围?
我一直在处理这个问题2天。我已经解决了,谢谢你。 –
不客气。正如我所看到的,您对ng使用相同的条件 - 如果为了定义是否应该呈现“编辑”和“删除”按钮或者“更新”和“取消”。最好为这两对按钮添加一些包装,并且仅对那些包装使用ng-if指令。在这种情况下,每个单元格只有2纳克 - 而不是4个。这种方法可以提高网格的性能。 –