Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 灰尘如果条件_If Statement_Dust.js - Fatal编程技术网

If statement 灰尘如果条件

If statement 灰尘如果条件,if-statement,dust.js,If Statement,Dust.js,我有一个灰尘问题,如果条件。我有一个部分指向2个不同的灰尘模板,这取决于国家代码 {>"receipt/merchantInfo/merchantInfo_{countryCode}"/} 我正在尝试做一个if-else条件,以确定{countryCode}是否是我们。 例如: {@if cond=“{countryCode}=='US'}” 国家代码是我们的吗 {:else} 国家代码不是我们的吗 {/if} 这不管用。有人知道我在这方面哪里出了问题吗?由于潜在的安全漏洞,@if帮助

我有一个灰尘问题,如果条件。我有一个部分指向2个不同的灰尘模板,这取决于国家代码

{>"receipt/merchantInfo/merchantInfo_{countryCode}"/}
我正在尝试做一个if-else条件,以确定
{countryCode}
是否是我们。 例如:

{@if cond=“{countryCode}=='US'}”
国家代码是我们的吗

{:else} 国家代码不是我们的吗

{/if}

这不管用。有人知道我在这方面哪里出了问题吗?

由于潜在的安全漏洞,
@if
帮助程序已被弃用(它在条件上使用eval)。我建议改用
@eq
助手

{@eq key=countryCode value="US"}
  <p>is country code US</p>
{:else}
  <p>is NOT country code US</p>
{/eq}
{@eq key=countryCode value=“US”}
国家代码是我们的吗

{:else} 国家代码不是我们的吗

{/eq}
如果这不起作用,请确保countryCode在您的上下文中可用(您可以使用
{@contextDump/}

我会这样做:

{@select key=countryCode }
    {@eq value="US"}<p>is country code US</p>{/eq}
    {@eq value="UK"}<p>is country code UK</p>{/eq}
    {@default}<p>is NOT country code US or UK</p>{/default}
{/select}
{@select key=countryCode}
{@eq value=“US”}是国家代码US

{/eq} {@eq value=“UK”}是国家代码UK

{/eq} {@default}不是美国或英国的国家代码

{/default} {/select}
确保您使用的是1.x版或更高版本


确保你已经装好了。前几天我碰到了这个。你需要它才能工作,它不会错误地告诉你它不是。

如果你喜欢@If,但不喜欢它使用eval的安全问题,你可以使用我的替代@If助手。它提供一个属性test=“expr”来指定您的if条件。eval不用于计算表达式的值

表达式中的变量仅限于用于从上下文访问值的名称和路径。常量是JavaScript整数、浮点、十六进制和字符串形式(“xx”或“xx”)。操作数可以是“变量”、常量或生成值的二进制或一元表达式。关系运算符是,=,=,!=。布尔运算符是!(一元),| |和&&。。运算符优先级与JavaScript相同,为了清楚起见或优先级不是您想要的,可以使用括号

以下是一个例子:

{@if test="state == 'CA' || state == 'NY'"}
    true stuff goes here
{:else}
    false stuff goes here
{/if}
注意,它仍然有允许使用eval()的cond=“expr”属性的代码。这为现有代码提供了迁移路径

您可以将其安装为npm模块()。

您还可以使用:

{#key}
  Some content
{:else}
  Some other content, if key doesn't have a value
{/key}
例如:

资料

粉尘模板

<p>First Name: {firstName}</p>
<p>Last Name: {lastName}</p>
{#website}
   <p>Website: {website}</p>
{:else}
   <p>Phone: {phone}</p>
{/website}

投票赞成提到安全漏洞。选择
怎么样?我可以将
选择
eq
gte
等一起使用吗?我怎样才能写出复杂的条件呢?假设
A>B&&B
select
可以与
eq
gt
lt
等一起使用。目前在单个语句中不可能使用复杂的条件。您必须使用嵌套,并且通常会重复一些代码。关于创建<代码>和<代码>和<代码>或<代码>助手,已经有过讨论,但同时,如果可能的话,我建议更改您的数据。您能提供这方面的来源吗?dustjs helpers的代码/网站没有提到“if”已被弃用。感谢您提到contextDump,这非常方便*只是为了更容易找到它。最新版本的dust中不推荐使用“default”
{
   firstName: "Mickey",
   lastName:  "Mouse",
   website:   null,
   phone:     "1-800-DISNEYWORLD"
}
<p>First Name: {firstName}</p>
<p>Last Name: {lastName}</p>
{#website}
   <p>Website: {website}</p>
{:else}
   <p>Phone: {phone}</p>
{/website}
First Name: Mickey
Last Name: Mouse
Phone: 1-800-DISNEYWORLD