Skip to content

Commit e1c773a

Browse files
committed
add create event
1 parent 529abb5 commit e1c773a

File tree

9 files changed

+55
-26
lines changed

9 files changed

+55
-26
lines changed

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,26 @@ One `Purpose` of this component is to extend jQuery DataTables function and feat
221221
* Ability to have simple `template` field so you can pass schema JSON from static file or some API, instead of requiring to define a javascript `render` function. Though, the `render` function would provide best performance.
222222
* Having schema also allow for future features, such as editable column/cell.
223223

224+
### events
225+
Custom events for this component.
226+
```html
227+
<vdtnet-table ...
228+
@tableCreating="doSomethingImmediatelyAfterDataTableCreate"
229+
@tableCreated="doSomethingImmediatelyAfterTableCreatedAndInitialized"
230+
@reloaded="doSomethingAfterDataLoadOrReloaded"
231+
/>
232+
```
233+
234+
```js
235+
doSomethingImmediatelyAfterTableCreatedAndInitialized(comp) {
236+
// use comp.dataTable to access the jQuery DataTables object, example:
237+
comp.dataTable.on( 'order.dt', function () { eventFired( 'Order' ); } )
238+
}
239+
```
240+
- `tableCreating` this is immediately after jQuery(el).DataTable is called.
241+
- `tableCreated` this is after we have initialized all the columns.
242+
- `reloaded` this is after data has been load/reloaded
243+
224244
## Additional Headers
225245
Many server-side usage require CSRF and/or API token headers. Since jQuery DataTables `options` are completely exposed as `opts`, simply use the native method per [jQuery DataTables example](https://editor.datatables.net/manual/security#Prevention)
226246

example/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,7 @@ var myUniqueId = 1;
716716
var $el = jq(vm.$refs.table); // console.log(vm.options.buttons)
717717

718718
vm.dataTable = $el.DataTable(vm.options);
719+
vm.$emit('table-creating', vm);
719720

720721
if (vm.selectCheckbox) {
721722
// handle select all checkbox
@@ -817,8 +818,9 @@ var myUniqueId = 1;
817818
tr.addClass('master');
818819
}
819820
});
820-
} // finally, load data
821+
}
821822

823+
vm.$emit('table-created', vm); // finally, load data
822824

823825
if (vm.dataLoader) {
824826
vm.reload();

example/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/mix-manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"/index.js": "/index.js?id=ad7b8d4944a8f079b5a3",
3-
"/index.js.map": "/index.js.map?id=19d02234de31f6b15dc7"
2+
"/index.js": "/index.js?id=ac91b689ff131831cbbc",
3+
"/index.js.map": "/index.js.map?id=154eed62452287a86ec0"
44
}

package-lock.json

Lines changed: 22 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vue-datatables-net",
33
"description": "Vue jQuery DataTables.net wrapper component",
4-
"version": "1.1.7",
4+
"version": "1.1.8",
55
"author": "[email protected]",
66
"license": "MIT",
77
"main": "lib/index.js",
@@ -36,7 +36,7 @@
3636
"devDependencies": {
3737
"@babel/core": "^7.5.5",
3838
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
39-
"babel-eslint": "^10.0.2",
39+
"babel-eslint": "^10.0.3",
4040
"bootstrap": "^4.3.1",
4141
"browser-sync": "^2.26.7",
4242
"browser-sync-webpack-plugin": "^2.0.1",

src/VdtnetTable.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ export default {
312312
313313
// console.log(vm.options.buttons)
314314
vm.dataTable = $el.DataTable(vm.options)
315+
vm.$emit('table-creating', vm)
315316
316317
if (vm.selectCheckbox) {
317318
// handle select all checkbox
@@ -412,6 +413,8 @@ export default {
412413
})
413414
}
414415
416+
vm.$emit('table-created', vm)
417+
415418
// finally, load data
416419
if (vm.dataLoader) {
417420
vm.reload()

0 commit comments

Comments
 (0)