igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
57 lines (42 loc) • 4.53 kB
Markdown
# igx-transaction
`TransactionService` allows the developers to plug a middleware between given component and its data source. While plugged in `TransactionService` should collect all the transactions performed in the component without send them to the data source. `TransactionService` should be able to update the data source and commit all the transactions when needed.
A walk through of how to get started can be found [here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/transaction)
## Usage
```typescript
({
providers: [{ provide: IgxGridTransaction, useClass: IgxTransactionImplementation }]
})
```
## Getting Started
### Dependencies
To use the `TransactionService` import the TransactionService:
```typescript
import { IgxGridTransaction, IgxTransactionService } from "igniteui-angular-sovn";
```
and then inject it in the component's constructor:
```typescript
constructor( (IgxGridTransaction) private _transactions: TransactionService) { };
```
## API
### TransactionService
| Name | Description | Parameters |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| enabled | Returns whether transaction is enabled for this service | - |
| onStateUpdate | Event fired when transaction state has changed - add transaction, commit all transactions, undo and redo | - |
| canUndo | Returns if there are any transactions in the Undo stack | - |
| canRedo | Returns if there are any transactions in the Redo stack | - |
| add | Adds provided transaction with recordRef if any | transaction, recordRef? |
| getTransactionLog | Returns all recorded transactions in chronological order | id? |
| undo | Remove the last transaction if any | - |
| redo | Applies the last undone transaction if any | - |
| getAggregatedChanges | Returns aggregated changes from all transactions | mergeChanges |
| getState | Returns the state of the record with provided id | id, pending |
| getAggregatedValue | Returns value of the required id including all uncommitted changes | id, mergeChanges |
| commit | Applies all transactions over the provided data | data, id? |
| clear | Clears all transactions | id? |
| startPending | Starts pending transactions. All transactions passed after call to startPending will not be added to transaction log | - |
| endPending | Clears all pending transactions and aggregated pending state. If commit is set to true commits pending states as single transaction | commit |
### HierarchicalTransactionService
| Name | Description | Parameters |
| ------ | ----------------------------------------------- | ----------------------------------- |
| commit | Applies all transactions over the provided data | data, primaryKey, childDataKey, id? |