在把手中,是否有三元操作符?我不是指if else
;我的意思是像a == true ? "a" : "b"
。在handlebars.js中有三元運算符嗎?
回答
你可以建立在handlbars了自己的助手,如果你真的想。像ternary(a==true, "a", "b")
。欲瞭解更多信息,請參閱documentation。從m90的想法不是手柄背後的想法。這個想法是在你的模板中沒有顯式的代碼,只需要調用助手和對象。
像http://stackoverflow.com/q/29441130/770127 – ryanve 2015-04-06 18:44:14
的if
助手可以通過傳遞三個參數傳遞給它被用作三元運算符。
在以下示例中,按鈕的默認值爲"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);
幫手
有兩個參數:如果第一個參數的計算結果爲true,則會打印,否則第二個參數
{{iftrue project.price 'N/A'}} // $9.99
{{iftrue project.priceNotAvailable 'N/A'}} // N/A
隨着三個參數:如果第一參數評估爲真第二將被打印,否則第三
// If deadline is set formatted date will be printed, otherwise 'N/A'
{{iftrue project.deadline (moment-format project.deadline 'DD.MM.YYYY') 'N/A'}}
雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/10731433) – 2015-12-30 22:05:43
@progressive_overload編輯,thanx – Terion 2015-12-30 22:59:17
這下面的代碼可以用於三元或任何種類的表達的eval。
警告:請在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. 三元運算符
- 2. 三元運算符在foreach
- 3. LINQ中的所有三元運算符?
- 4. JavaScript中有更簡單的三元運算符嗎?
- 5. 在freemarker中使用三元運算符?
- 6. 三元運算符在php中?
- 7. 三元運算符作爲C宏中三元運算符的操作數
- 8. 三元運算符用法?
- 9. &&使用三元運算符
- 10. 執行三元運算符
- 11. 關於三元運算符..!
- 12. C三元運算符
- 13. 使用三元運算符
- 14. 替代三元運算符
- 15. Ruby三元運算符
- 16. java三元運算符
- 17. 三元運算符用法
- 18. 三元運算符C
- 19. 三元運算符連接
- 20. 三元運算符問題
- 21. 三元運算符shorthands?和?:
- 22. 的JavaScript三元運算符
- 23. matlab是否有三元運算符?
- 24. 我可以在className的div中使用三元運算符嗎?
- 25. 可以在C++流中使用三元運算符嗎?
- 26. 在三元運算符中評估兩條路徑嗎?
- 27. 是否有三元運算符在c#中運行函數?
- 28. printf中的三元運算符
- 29. java vs c中的三元運算符
- 30. C中的三元運算符#
把手只是JavaScript,因此三元運算符將工作就像在JavaScript中。 – m90 2012-08-11 15:26:41
您是否檢查過官方網站:http://handlebarsjs.com/?它包含教程... – 2012-08-11 16:10:41
我檢查了官方網站。但我沒有看到三元運算器的解釋。 – shawnXiao 2012-08-12 08:37:30