我正在尝试将变量传递到Meteor.js模板中,然后在if语句中使用该变量(在所述模板中)。我可以做的一个解决方案是简单地使用三个单独的模板而不是使用if语句划分一个模板,但我想知道是否有更好的方法来执行它。我知道您无法在其他{{}}内使用{{}},并且如果语句似乎也无法处理相等比较,那么也会使用句柄。
这是我的代码( idType 是我通过的变量):
<template name="license">
{{> idForm idType="license"}}
</template>
<template name="idForm">
<form class="idForm">
{{#if idType=="license"}}
<span>Driver's License Details</span>
<input type="text" id="su-licenseNo" placeholder="License Number" />
<input type="text" id="su-surname" placeholder="Surname" />
<input type="text" id="su-givenNames" placeholder="Given Names" />
<input type="text" id="su-dateOfIssue" placeholder="Date Of Issue" />
<input type="text" id="su-dateOfExpiry" placeholder="Date Of Expiry" />
<input type="text" id="su-height" placeholder="Height" />
{{/if}}
{{#if idType=="passport"}}
<span>Passport Details</span>
<input type="text" id="su-type" placeholder="Type" />
<input type="text" id="su-issuingCountry" placeholder="Issuing Country" />
<input type="text" id="su-passportNo" placeholder="Passport Number" />
<input type="text" id="su-surname" placeholder="Surname" />
<input type="text" id="su-givenNames" placeholder="Given Names" />
<input type="text" id="su-nationality" placeholder="Nationality" />
<input type="text" id="su-dateOfIssue" placeholder="Date Of Issue" />
<input type="text" id="su-dateOfExpiry" placeholder="Date Of Expiry" />
{{/if}}
{{#if idType=="sin"}}
<span>SIN Details</span>
<input type="text" id="su-surname" placeholder="Surname" />
<input type="text" id="su-givenNames" placeholder="Given Names" />
<input type="text" id="su-number" placeholder="SIN" />
{{/if}}
<button>Submit!</button>
</form>
</template>
答案 0 :(得分:1)
您无法在{{#if ...}}
手柄语句中进行比较,{{#if idType=="license"}}
不是有效的句柄语法。
您可以通过制作comparison helper来解决这个问题,或者您可以稍微改变一下使用情况并执行此操作:
<template name="license">
{{> idForm isLicense=1}}
</template>
<template name="idForm">
<form class="idForm">
{{#if isLicense}}
...
{{/if}}
{{#if isPassport}} <!-- this will be false since it was omitted -->
...
{{/if}}
</form>
</template>