owl
owl

Reputation: 4501

How to ignore setValue in the .on('input') event (ace.js)

editor.on('input', function(e, target) {
    console.log(true);
});

editor.getSession().setValue('value'); // How not to handle it in the input event?

How to do it?

Upvotes: 1

Views: 1369

Answers (1)

a user
a user

Reputation: 24169

Input event is fired after timeout, and will fire only once if you do several changes quickly. if you use change event you can do

var ignore, changed
editor.on('input', function() { // async and batched
    if (changed) console.log(e);
    changed = false
});
editor.on('change', function() { // sync for each change
    if (!ignore) changed = true
});
ignore = true
editor.getSession().setValue('value');
ignore = false

Upvotes: 2

Related Questions