ハンドルバーには三項演算子がありますか?私はif else
を意味しません。私はa == true ? "a" : "b"
のようになります。handlebars.jsに3項演算子がありますか?
答えて
本当にしたい場合は、独自のヘルパーをビルドすることができます。 ternary(a==true, "a", "b")
のようなものです。詳細については、documentationを参照してください。 m90のアイデアは、ハンドルバーの背後にあるアイデアではありません。このアイデアはテンプレートに明示的なコードを持たず、ヘルパーとオブジェクトだけを呼び出すことです。
のようなhttp://stackoverflow.com/q/29441130/770127 – ryanve
if
ヘルパーは、3つの引数を渡すことで3項演算子として使用できます。
次の例では、ボタンのデフォルト値は"Save Changes"
ですが、model.isSaving
がtrueの場合、値は一時的にSaving...
に変更されます。
<button>{{if model.isSaving "Saving..." "Save Changes"}}</button>
...代わりに、別のヘルパー内で使用される:
{{input type="submit" value=(if model.isSaving "Saving..." "Save Changes")}}
私はこのためにヘルパーを持っている(他のヘルパーは内部でも使用できることに注意を払う) https://gist.github.com/terion-name/d87ed8907f1bb2e25f32
// app/helpers/iftrue.js
import Ember from 'ember';
export function iftrue(params) {
if (params[0]) {
return params.length === 2 ? params[0] : params[1];
}
if (params.length === 2) {
return params[1];
} else if (params.length === 3) {
return params[2];
}
return null;
}
export default Ember.Helper.helper(iftrue);
2つのパラメータを使用すると、最初のパラメータがtrueと評価された場合は印刷され、それ以外の場合は2番目のパラメータ
三つのパラメータで10{{iftrue project.price 'N/A'}} // $9.99
{{iftrue project.priceNotAvailable 'N/A'}} // N/A
:最初のパラメータがtrue第二に評価された場合には、印刷される、そうでなければ第3のコード以下
// If deadline is set formatted date will be printed, otherwise 'N/A'
{{iftrue project.deadline (moment-format project.deadline 'DD.MM.YYYY') 'N/A'}}
このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューより](/レビュー/低品質の投稿/ 10731433) –
@progressive_overload編集済み、thanx – Terion
これは、評価式の三元または任意の種類のために使用することができます。
警告:evalを安全に使用できるシナリオでこのコードを使用してください。
{{#if (myfunc "(a[0] + 1) % 2 === 0" arg1)}}
{{/if}}
{{#if (myfunc "(a[0] + a[1]) % 2 === 0" arg1 arg2)}}
{{/if}}
ハンドルヘルパー関数
myfunc: (exp, ...a) => {
return eval(exp);
}
- 1. Juliaには3項演算子がありますか?
- 2. または演算子対3項演算子
- 3. VHDLには三項演算子がありますか?
- 4. 単項演算子 ' - 'の後に式がありません
- 5. 条件演算子(3進演算子)を使用するNullpointer例外(else演算子はありません)
- 6. LINQの3項演算子where句
- 7. オーバーロードされた '演算子++'は単項演算子または2項演算子でなければなりません(3つのパラメータを持ちます)
- 8. SASにはインライン関数または三項演算子がありますか?
- 9. 三項演算子に偽のオプションはありません
- 10. 二項演算子
- 11. 三項演算子?:
- 12. [:==:予期せぬ演算子、あまりにも多くの引数、二項演算子が
- 13. 単項演算子をPythonでバイナリ演算子でオーバーライドする可能性はありますか?
- 14. Meteor Handlebars.jsテンプレートの ">"演算子とは何ですか?
- 15. Meteor's Minimongoに$演算子の代わりがありますか?
- 16. PHPはforループの3項演算子を使用します
- 17. NumPy ndarrayの3項演算子ですか?
- 18. boost_interfaceに演算子[]または.at()メソッドがありますか?
- 19. Javascriptの算術演算の加算演算子はありますか?
- 20. ng-routeに3項演算子を追加する条件
- 21. JavaScript算術演算子...どこにありますか?
- 22. エコーには、エコーのスパンをエコーする3値演算子があります
- 23. NOR演算子があるプログラムはありますか?
- 24. 3進演算子が計算中PHP
- 25. シングルコール三項演算子
- 26. JPA単項演算子
- 27. Ruby三項演算子
- 28. phpの三項演算子
- 29. 三項演算子(Java)
- 30. ネスト三項演算子
ハンドルバーだけではJavaScriptですので、三項演算子は、単にJavaScriptで同じように動作します。 – m90
あなたは公式のウェブサイトをチェックしましたか:http://handlebarsjs.com/?それはチュートリアルが含まれています... –
私は公式のWebサイトをチェックしました。しかし、私は3元Opreratorのexplaintionsを見ませんでした。 – shawnXiao