Comments (7)
Two workarounds:
Out of the box
Custom nullish helper
// app/helpers/with-default.js
import { helper } from '@ember/component/helper';
export default helper(([value, defaultValue]) => (value ?? defaultValue));
from ember-truth-helpers.
Count me as "Definitely against changing the semantics of {{or}}
" The behavior you describe is 100% what I expect to happen, given that {{or}}
is for truth testing and not picking a value to use.
I would suggest implementing your own "nullish coalesing" template helper. Possible names:
- arg-or
- or-default
from ember-truth-helpers.
I can't seem to replicate the behaviour that the OP is describing. Maybe the and
and or
helpers were different at some point. The helpers do indeed seem to return the given value, rather than a Boolean cast of the value.
I'm running Ember 4.12 and ember-truth-helpers 3.1.1
Might be related to #143
given that {{or}} is for truth testing and not picking a value to use.
It depends how you look at it. If we convert the or helper into an equivalent javascript...
const myValue = "OR - PRINTED" || true
I would expect myValue
to be the string, rather than true.
from ember-truth-helpers.
does OP want ??
instead of ||
behavior?
from ember-truth-helpers.
does OP want
??
instead of||
behavior?
Yup :)
from ember-truth-helpers.
Ah ok. I might have misunderstood the issue, thought it was a bug report rather than a feature request, got confused with the mention of the or helper. Sorry!
from ember-truth-helpers.
I wouldn't be against the addition of a new helper for this. Nullish coalescing is pretty common JavaScript logic these days!
from ember-truth-helpers.
Related Issues (20)
- Helper "not" has wrong value when passing PromiseProxy
- not-eq has unknown reexport HOT 1
- Helper is-empty returns false when passing undefined
- Update to ember-cli-babel@7 HOT 2
- `or` doesn't work the same way as `||` in JavaScript HOT 3
- Update `README` to note that `or`, `and` and `xor` **do** short-circuit HOT 2
- Short-circuit Problem With `SafeString` Using `or` (And Maybe Other Helper)
- Ember Global Deprecation Warning HOT 1
- Project maintenance HOT 4
- Typescript conversion HOT 1
- Can't `npm i` master branch to use with `ember-template-imports` HOT 2
- Cut a release? HOT 12
- Incorrect glint return type for `or` helper in 4.0.0-beta.0 HOT 2
- [QUESTION] `ember-source` compat HOT 3
- `and` returns non-boolean value rather than converting it (which breaks default value logic)
- Document usage with glint additionalSpecialForms config HOT 1
- Memory leaks with `and ` and `or` after they were converted to class based helpers HOT 3
- Importing from package root does not work in classic builds + `.gts`
- Show how to use in template imports
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ember-truth-helpers.