我可以将 returns 字符串的 if else 语句连接到服务器端呈现的 HTML 元素吗?

Can I concatenate an if else statement that returns a string to server-side rendered HTML elements?

我正在开发一个网络应用程序,它必须根据布尔值的状态显示一个或另一个值。如果我的 var "value" 是 true,我需要它显示 "ON",否则它必须显示 "OFF".

我写了这段代码,我很确定它会起作用,但我错了:

var value = true // actually this changes over time
var s = new String();
s += '<span style="color:white; font-size:14px; font-weight:bold;">'+ "ALRM H2S:" +'</span>';
s += '<span style="color: orange; font-size:14px; font-weight:bold;">'+ if(value){return "ON"} else {return "OFF"} +'</span>';

return s;

我得到一个 "Syntax error at line (#3)"。我认为问题一定是我无法将 if else 语句与 return string 的其余部分连接起来] 元素。

我做错了什么?

你说得对,你不能像那样内联 if 语句,所以在这种情况下你应该使用 ternary operator。你可以这样使用它:

var value = true; // actually this changes over time
var s = new String();
s += '<span style="color:white; font-size:14px; font-weight:bold;">' + "ALRM H2S:" + "</span>";
s += '<span style="color: orange; font-size:14px; font-weight:bold;">' + (value ? "ON" : "OFF") + "</span>";

return s;

添加字符串时不能运行条件语句。我的建议是给你一个箭头函数,returns 一个字符串。

var value = true // actually this changes over time
var s = new String();
var ifOn = () => { value? "ON" :"OFF"}
s += '<span style="color:white; font-size:14px; font-weight:bold;">'+ "ALRM H2S:" +'</span>';
s += '<span style="color: orange; font-size:14px; font-weight:bold;">' + ifOn() +'</span>'

谢谢你们的精彩回答!

我想出的解决方案不如你的好,但是它有效:

var s = new String();

var h2sStatus;

if(value){ h2sStatus = "ON"} else {h2sStatus = "OFF"}

s += '<span style="color:white; font-size:14px; font-weight:bold;">ALARM H2S: </span>';

s += '<span style="color: orange; font-size:14px; font-weight:bold;">'+ h2sStatus  +'</span>';

return s;

我post它可能对某人有帮助。