如何在Blaze中使用当前作用域范围内的变量?
例如:
<template name="userLayoutEditCreate">
{{#each findUser id}}
<h3>I am a single user (edit/create)</h3>
<h3>{{id}}</h3>
<form action="/" method="post">
<fieldset>
<!-- Primary instruments multi-select -->
<div class="form-group">
<label class="control-label" for="playerPrimaryInstrument">Primary instruments</label>
<div class="controls text-left">
<select id="playerPrimaryInstrument" name="playerPrimaryInstrument">
{{#each instruments}}
<option value="{{name}}" {{#if equals primary_instrument name}} selected="selected" {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</fieldset>
</form>
{{/each}}
</template>
if语句不在每个块中运行。但它确实在每个块之外运行(我已经定义了帮助器)。
我得到的错误看起来像这样。
Reactive HTML attributes must either have a constant name or consist of a single {{helper}} providing a dictionary of names and values. A template tag of type BLOCKOPEN is not allowed here.
====编辑====
在这种情况下,即使使用'../'范围定义也不起作用。 DID的工作原理是将表达式放在所选属性的值内。我不知道为什么会这样,如果您有任何想法,请告诉我?
解决方案:
{{#each instruments}}
<option value="{{name}}" selected="{{#if equals name ../primary_instrument}} selected {{/if}}">{{name}}</option>
{{/each}}
答案 0 :(得分:2)
试试这个:
{{#if equals ../primary_instrument name}}
{{/if}}