流星火焰的“向上”范围?

时间:2016-02-15 21:33:29

标签: meteor meteor-blaze

如何在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}}

1 个答案:

答案 0 :(得分:2)

试试这个:

{{#if equals ../primary_instrument name}}
{{/if}}