0

Ember.js/Handlebars テンプレートに次のようなコード セクションを新たに追加しました。

      {{#each day in week.days}}
        {{#if day.today}}
        <td class="active">
        {{else}}
        <td>
        {{/if}}
          <h5><b>{{day.mileage}}</b></h5>
          <br/>
          {{day.dayStr}}
        </td>
      {{/each}}

day.todayが次のように入力されたオブジェクトから来る場所:

{
    ...
    today: dateEquals(new Date(), currentDate)
}

そして、今日の場合、その日付が強調表示されるように (私が描いている小さなカレンダーで) したいと思います。

ただし、これを実行しようとすると、次のエラーが発生します。

[18191:0927/082737:INFO:CONSOLE(12363)] "Uncaught Error: Unclosed element `td` (on line 14).", source: file:///path/to/project/js/libs/ember-template-compiler-1.12.0.js (12363)

このエラーは、事前にレンダリングされたテンプレートから発生していますか? <td>確かに、実行時 (「レンダリング時」) には または のいずれかのみが存在し<td class="active">、両方が存在することはありません。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

Ember v1.11 の時点で、バインドされた属性構文と組み合わせてinline-if ヘルパーを使用できます。

{{#each day in week.days}}
  <td class="{{if day.today 'active'}}">
    <h5><b>{{day.mileage}}</b></h5>
    <br/>
    {{day.dayStr}}
  </td>
{{/each}}
于 2015-09-27T12:36:04.123 に答える
-1

この問題を解決するには、条件分岐内にタグ全体を含めて、HTMLBars がタグを閉じたことを「認識」し、ハングしたままにしないようにします。そのようです:

{{#each week.days as |day|}}
  {{#if day.today}}
    <td class="active">
      <h5><b>{{day.mileage}}</b></h5>
      <br/>
      {{day.dayStr}}
    </td>
  {{else}}
    <td>
      <h5><b>{{day.mileage}}</b></h5>
      <br/>
      {{day.dayStr}}
    </td>
  {{/if}}
{{/each}}

これは何度も繰り返しているように思えますが、後でレイアウトを変更するときに、通常はバグが少なくなることがわかりました。また、それをコンポーネントに抽出し、ダニエルが他の回答で言及しているインラインを使用するか、独自のヘルパーを作成することを示している可能性もあります。

于 2015-09-28T09:58:49.670 に答える