|
@@ -473,7 +473,11 @@ export default class View {
|
|
|
modelValue = schemaItem.callback( modelValue, node );
|
|
modelValue = schemaItem.callback( modelValue, node );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return modelValue;
|
|
|
|
|
|
|
+ if ( schemaItem.type === bindIfSymbol ) {
|
|
|
|
|
+ return !!modelValue ? schemaItem.valueIfTrue || true : '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return modelValue;
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
return schemaItem;
|
|
return schemaItem;
|
|
|
}
|
|
}
|
|
@@ -498,20 +502,22 @@ export default class View {
|
|
|
// A function executed each time bound model attribute changes.
|
|
// A function executed each time bound model attribute changes.
|
|
|
const onModelChange = () => {
|
|
const onModelChange = () => {
|
|
|
let value = getBoundValue( node );
|
|
let value = getBoundValue( node );
|
|
|
|
|
+ let shouldSet;
|
|
|
|
|
|
|
|
if ( isPlainBindIf ) {
|
|
if ( isPlainBindIf ) {
|
|
|
value = value[ 0 ];
|
|
value = value[ 0 ];
|
|
|
|
|
+ shouldSet = value !== '';
|
|
|
|
|
+
|
|
|
|
|
+ if ( shouldSet ) {
|
|
|
|
|
+ value = value === true ? '' : value;
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
value = value.reduce( binderValueReducer, '' );
|
|
value = value.reduce( binderValueReducer, '' );
|
|
|
|
|
+ shouldSet = value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const isSet = isPlainBindIf ? !!value : value;
|
|
|
|
|
-
|
|
|
|
|
- const valueToSet = isPlainBindIf ?
|
|
|
|
|
- ( valueSchema[ 0 ].valueIfTrue || '' ) : value;
|
|
|
|
|
-
|
|
|
|
|
- if ( isSet ) {
|
|
|
|
|
- domUpdater.set( valueToSet );
|
|
|
|
|
|
|
+ if ( shouldSet ) {
|
|
|
|
|
+ domUpdater.set( value );
|
|
|
} else {
|
|
} else {
|
|
|
domUpdater.remove();
|
|
domUpdater.remove();
|
|
|
}
|
|
}
|
|
@@ -709,7 +715,10 @@ function hasModelBinding( valueSchema ) {
|
|
|
* @returns {String}
|
|
* @returns {String}
|
|
|
*/
|
|
*/
|
|
|
function binderValueReducer( prev, cur ) {
|
|
function binderValueReducer( prev, cur ) {
|
|
|
- return prev === '' ? `${cur}` : `${prev} ${cur}`;
|
|
|
|
|
|
|
+ return prev === '' ?
|
|
|
|
|
+ `${cur}`
|
|
|
|
|
+ :
|
|
|
|
|
+ cur === '' ? `${prev}` : `${prev} ${cur}`;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|