Próbuję użyć funkcji row saving w połączeniu z expandable grid. Celem jest umożliwienie zapisywania wierszy pod-siatkami, niezależnie od wiersza nadrzędnego.Nie można zapisać wiersza w rozszerzalnym wierszu w interfejsie kątowym Siatka
$scope.gridOptions = {
expandableRowTemplate: 'components/grid/orderLineTemplate.html',
expandableRowHeight: 150,
expandableRowScope: {
subGridVariable: 'subGridScopeVariable'
},
columnDefs: [
{field: '_id'},
{field: 'number'}
]
};
$http.get(ORDER_API)
.success(function (data) {
for (var i = 0; i < data.length; i++) {
var rowScope = data[i];
rowScope.subGridOptions = {
appScopeProvider: $scope,
columnDefs: [
{field: 'amount'},
{field: 'packageAmount'},
{field: 'carrierAmount'}
],
data: rowScope.orderLines,
saveRow : $scope.saveRow
}
}
$scope.gridOptions.data = data;
});
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.rowEdit.on.saveRow($scope, $scope.saveRow);
};
$scope.saveRow = function (order) {
var promise = $q.defer();
$scope.gridApi.rowEdit.setSavePromise(order, promise.promise);
if(order.number) {
$http.put(ORDER_API + '/' + order._id, order).success(function() {
promise.resolve();
}).error(function() {
promise.reject();
});
}
}
});
Funkcja saveRow jest wywoływana poprawnie podczas edycji pola w wierszu nadrzędnym. Kiedy edytuję pole w podrzędnym wierszu, pojawia się następujący komunikat w konsoli;
"Obietnica nie została zwrócona, gdy zdarzenie saveRow zostało podniesione, nikt nie słucha zdarzenia lub program obsługi zdarzeń nie zwrócił obietnicy"
SaveRow nigdy nie jest wywoływany z rozwiniętym podrzędnym.