-
Notifications
You must be signed in to change notification settings - Fork 0
/
Editor.js
23 lines (21 loc) · 989 Bytes
/
Editor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var compose = require('ksf/utils/compose');
var _Destroyable = require('ksf/base/_Destroyable');
var _ContentDelegate = require('./_ContentDelegate');
var on = require('ksf/utils/on')
var bindValue = require('ksf/observable/bindValue');
// permet de faire un binding entre un input et une valeur réactive inline dans un déclaratif de layout
module.exports = compose(_Destroyable, _ContentDelegate, function(args) {
this._content = args.content;
// binding descendant
this._own(bindValue(args.value, function(value) {
if (args.forceUpdate || args.content.value() !== value) { // par défaut on essaie de ne pas faire de modif si le input a déjà la bonne valeur
args.content.value(value);
}
}));
// binding montant
this._own(on(args.content, 'input', function(inputValue) {
// réinitialisation de la valeur au cas où le change ne déclencherait pas d'événement
args.pessimistic && args.content.value(args.value.value());
args.value.change(inputValue);
}));
});