0

HTML 選択でデフォルト値を設定しようとしていますが、成功しません。私は次のように初期設定を行っています:

<template name="demo">
    <select>
        {{#each foo}}
            <option>{{this}}</option>
        {{/each}}
    </select>
</template>

そして、モデルで可能なオプションを次のように設定します。

Template.demo.foo = ["aaa","bbb","ccc"];

これまでのところ、すべてが意図したとおりに機能しています。

今、コレクション コレクションの行を表示しようとしており、select にデフォルトで記録された foo 値 (aaa または bbb または ccc) を入力します。私の理解では、タグに「選択済み」を追加する必要があります。だから私は複数のネストされたブロックでこのようなことをします:

<template name="demo">
    {{#each collecs}}
        {{_id}}
        <select>
            {{#each foos}}
                <option{{#if isSelected this ../this}}selected{{/if}}>{{this}}</option>
            {{/each}}
        </select>
    {{/each}}
</template>

モデルの前面では:

Template.demo.foos = ["aaa","bbb","ccc"];

    Template.demo.collecs = function(){
      return Collec.find({});
      };

    Template.demo.isSelected = function(fooToCheck, record){
      var rid= record._id; 
      var currentRecord = Collec.findOne({_id:rid});
      return (fooToCheck==currentRecord.foo);
  };

問題は、それが機能しないことです。ドロップダウンは空のままで、生成された html コードは次のようになります。

"              >aaa             "

私は js 部分をチェックインしました。すべて正しく動作しているようで、true/false が適切に返されます。

よろしくお願いいたします。

4

1 に答える 1

0

ハンドルバーの条件分岐はインラインではうまく機能しません。実際、どこでもインラインで動作するかどうかはわかりません。何が起きていたかというと、Handlebars テンプレート エンジンがあなたの html を理解できなかったため、それをスキップしたため、'>aaa' が表示されたのです。

次のコードは機能します。私は自由に isSelected 関数を単純化しました。

テンプレート:

<template name="demo">
    {{#each collecs}}
        {{_id}}
        <select>
            {{#each foos}}
                {{#if isSelected this ../foo}}
                  <option selected>{{this}}</option>
                {{else}}
                  <option>{{this}}</option>
                {{/if}}
            {{/each}}
        </select>
    {{/each}}
</template>

JavaScript:

  Template.demo.foos = ["aaa","bbb","ccc"];

  Template.demo.collecs = function(){
    return Collec.find({});
  };

  Template.demo.isSelected = function(fooToCheck, recordFoo){
    return (fooToCheck === recordFoo);
  };
于 2013-04-04T15:12:36.830 に答える