简体   繁体   English

javascript:如何在 html 中使用三元表达式渲染?

[英]javascript: How to use ternary expression render in html?

Here is a javascript ternary operator codes.这是一个 javascript 三元运算符代码。

'<p>{balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>}</p>'

I tried many ways in order to rendered proper in HTML, however has no luck.我尝试了很多方法来在 HTML 中正确呈现,但是没有运气。

Output: {balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>} Output expected: (Stock: 23) or Not Available (in red color)输出: {balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>}预期输出:(库存:23)或不可用(红色)

Thank you in advance!先感谢您!

Below is part of codes that use for working with Bloodhound plugin.以下是用于使用 Bloodhound 插件的部分代码。

var prodName_typehead = {
                    name: 'prod_name',
                    displayKey: 'name',
                    hint: (App.isRTL() ? false : true),
                    source: item.ttAdapter(),
                    limit: 20,
                    templates: {
                       suggestion: Handlebars.compile([
                            '<div class="media">',
                                  '<div class="pull-left">',
                                      '<div class="media-object">',
                                          '<img src="{{thumb}}" width="50" height="50"/>',
                                      '</div>',
                                  '</div>',
                                  '<div class="media-body">',
                                      '<p><strong>{{name}}</strong></p>',
                                      '<p>{{desc}}</p>',
                                       '<p>{balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>}</p>',
                                  '</div>',
                            '</div>',
                          ].join(''))
                    }
                  };

I believe what you want is this:我相信你想要的是这个:

`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

When I run this:当我运行这个:

balance = 0
`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

I get:我得到:

"<p><span class="text-danger">Not Available</span></p>"

And when I run this:当我运行这个时:

balance = 1
`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

I get:我得到:

"<p>Stock: 1</p>"

I'm using javascript template literals to complete the variable substitution you were going for.我正在使用 javascript 模板文字来完成您想要的变量替换。

(Basically the issue you were having is that you needed ticks (`) instead of double quotes (") to make a template literal as NarayaN alluded to in his comment, a $ before the first bracket to start the javascript embed and then nesting this same logic for the balance inside the first string option.) (基本上你遇到的问题是你需要刻度(`)而不是双引号(“)来制作一个模板文字,正如 NarayN 在他的评论中提到的那样,在第一个括号之前的 $ 开始嵌入 javascript 然后嵌套这个第一个字符串选项中的余额的逻辑相同。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM