저는 앵귤러 형 JS에 처음 접했고 분명히 ui- 그리드에도 적용되었습니다. $ resource를 사용하여 그리드에 표시 할 데이터가 있고 행을 편집하고 저장할 수있게하여 다음 단계로 이동하려고합니다.
예를 들어 Saving row data with AngularJS ui-grid $scope.saveRow을 사용하여 Plunker http://plnkr.co/edit/Gj07SqU9uFIJlv1Ie6S5을 만들었습니다. 하지만, 어떤 이유인지 나는 짐작할 수 없다. 실제로 작동하지 않고 실제로 예외를 생성한다. gridApi.rowEdit.on.saveRow (self, self.saveRow);
저는 왜 그랬는지 이해하기가 힘듭니다. saveRow 함수는 비어 있지만이 단계의 목표는 단순히 행을 편집 할 때 호출하는 것입니다.
도움을 주시면 감사하겠습니다.
Plunker의 코드는 다음과 같습니다
(function() {
var app = angular.module('testGrid', ['ngResource', 'ui.grid', 'ui.grid.edit', 'ui.grid.rowEdit' /*, 'ui.grid.cellNav'*/ ]);
app.factory('Series', function($resource) {
return $resource('/api/series/:id', {
id: '@SeriesId'
});
});
var myData = [{
SeriesId: 1,
SeriesName: 'Series 1'
}, {
SeriesId: 2,
SeriesName: 'Series 2'
}];
app.directive('gridContent', function() {
var deleteTemplate = '<input type="button" value="Delete" ng-click="getExternalScopes().deleteRow(row)" />';
var commandheaderTemplate = '<input type="button" value="Add Series" ng-click="getExternalScopes().addNew()" />';
return {
restrict: 'E',
templateUrl: 'grid.html',
controllerAs: 'gridseries',
controller: function(Series) {
var self = this;
this.saveRow = function(rowEntity) {
i = 0;
};
this.gridOptions = {};
this.gridOptions.columnDefs = [{
name: 'SeriesId',
visible: false
}, {
name: 'SeriesName',
displayName: 'Name',
enableCellEdit: true
}, {
name: 'Command',
displayName: 'Command',
cellTemplate: deleteTemplate,
headerCellTemplate: commandheaderTemplate
}];
this.gridOptions.onRegisterApi = function(gridApi) {
self.gridApi = gridApi;
gridApi.rowEdit.on.saveRow(self, self.saveRow);
};
this.gridOptions.data = myData;
this.gridScope = {
deleteRow: function(row) {
var index = myData.indexOf(row.entity);
self.gridOptions.data.splice(index, 1);
},
addNew: function() {
self.gridOptions.data.push({
SeriesName: 'Add a name'
});
}
};
}
};
});
})();
나는 코드가 절단 제대로 붙여하지만 모든 코드가 Plunker에 어떤 식 으로든하지 않았는지 모른다.
미리 감사드립니다.