1

有一个应该代表一个表的视图,有columnsrows

App.ListView = Ember.View.extend({
  templateName: 'list',
  columns: ['t1', 't2', 't3'],
  rows: [
    { t1: 'one', t2: 'two', t3: 'three' },
    { t1: 'two', t2: 'one', t3: 'seven' }
  ]
});

- 分别是一个模板:

<table>
<thead>
  <tr>
  {{#each columns}}
    <th>{{this}}</th>
  {{/each}}
  </tr>
</thead>
<tbody>
{{#each rows}}
  <tr>
  {{#each ../columns}}
    <td>does nothing: {{this}}</td>
  {{/each}}
  </tr>
{{/each}}
<tbody>
<table>

...也可以在 jsfiddle上找到:jsfiddle.net/nWnf2

当嵌套在行中时,我显然无法遍历列。{{#each ../columns}}根本没有触发。这是为什么?什么是更好的方法?

4

1 回答 1

4

Ember 并不真正支持 Handlebars 中的文件路径标识符。但是,您可以通过view.columns.

<table>
  <thead>
    <tr>
    {{#each columns}}
      <th>{{this}}</th>
    {{/each}}
    </tr>
  </thead>
  <tbody>
  {{#each rows}}
    <tr>
    {{#each view.columns}}
      <td>does nothing: {{this}}</td>
    {{/each}}
    </tr>
  {{/each}}
  <tbody>
<table>

http://jsfiddle.net/L7MAp/

看看你的代码片段,我建议你看看 using{{#collection}}而不是{{#each}},它不会缓解这个问题,但它会让你的代码更干净(IMO)。

于 2012-07-30T00:40:44.430 回答