First, we decided to use events that can be activated on a button hit. However, nothing happened when we added a child. We checked this by adding the event console.log() class to the static:
pub/static/adminhtml/Magento/backend/en_US/Magento_Ui/js/lib/core/events.js
/**
* Calls callback when name event is triggered.
* @param {String} events
* @param {Function} callback
* @return {Object} reference to this
*/
on: function (events, callback, ns) {
var iterator;
if (arguments.length < 2) {
ns = callback;
}
console.log('events: ');
console.log(events);
iterator = addHandler.bind(null, this, ns);
_.isObject(events) ?
_.each(events, iterator) :
iterator(callback, events);
return this;
},
and added a log to the processingAddChild dynamic-rows
method:
pub/static/adminhtml/Magento/backend/en_US/Magento_Ui/js/dynamic-rows/dynamic-rows-grid.js
processingAddChild: function (ctx, index, prop) {
console.log('processingAddChild fire');
if (this._elems.length > this.pageSize) {
return false;
}
this.showSpinner(true);
this.addChild(ctx, index, prop);
console.log('processingAddChild END\'S');
},
The result:

Some additional options that you may think of:
- Replace this button for your own with a js-component expanding this
button. Hence, you'll get full control over it.
- Use simple events like click for home-elements (probably, not the
best decision).
- Replace a js-component for a dynamic row for your own and add the
code you need at the beginning of the
processingAddChild
method
processing and then call the parent method (this._super())
.
The first and third options look like the best solution if you need to add your own elements and not to modify the existing Magento code.