Open irok opened 6 years ago
My count method worked as follows.
jSmart = require('jsmart');
delete jSmart.prototype.modifiers.count; // disable count modifier
tmpl = new jSmart('{count($array)}');
console.log(tmpl.fetch({
array: [1, 2, 3],
count: (array) => 'My count method'
}));
// -> My count method
But, another problem was discovered.
jSmart = require('jsmart');
delete jSmart.prototype.modifiers.count;
data = {
array: [1, 2, 3],
count: (arg) => JSON.stringify({
typeof: typeof arg,
value: arg
})
};
tmpl = new jSmart('{count($array)}');
console.log(tmpl.fetch(data));
// -> {"typeof":"object","value":[1,2,3]}
There is no problem so far.
tmpl = new jSmart('{count($array) > 0}');
console.log(tmpl.fetch(data));
// -> {"typeof":"boolean","value":false}
Why become a boolean?
tmpl = new jSmart('{count($array) == $array}');
console.log(tmpl.fetch(data));
// -> {"typeof":"boolean","value":true}
true!? It seems that there is an error in the evaluation order. Can you fix it?
The following code seems to be working properly.
However, the following code does not work as expected.
Apparently, it seems that count modifier is working instead of my count method.
Can I use my count method?