在#each helper创建的元素上设置id

时间:2012-01-25 16:48:21

标签: ember.js

如何设置由Ember.js handelbars帮助器创建的元素的id #each?

如果你看一下http://jsfiddle.net/7QL5z/我试着在调用#each帮助器时定义一个id。

生成的HTML如下所示:

<div id="ember191" class="ember-view">
  <ul>
    <li id="ember349" class="ember-view"> Animal - Animals </li>
    <li id="ember389" class="ember-view"> Android - Androids </li>
    <li id="ember427" class="ember-view"> Human - Humans </li>
  </ul>
</div>

div和ul(这将是最有用的方式)都不会获得指定的id。 有可能吗?如果不是:我如何通过Ember访问这些元素?

2 个答案:

答案 0 :(得分:3)

我尝试在'#each'上设置'elementId'而不是'id',但它似乎也不起作用......

否则您可以创建动物列表视图

App.AnimalsListView = Ember.CollectionView.extend({
  tagName: 'ul',
  contentBinding: 'App.itemsController.content',
  classNames: ['animals'],
  elementId: 'animalsList',
  itemViewClass: Ember.View.extend({
    classNames: ['animal'],
    templateName: 'ember/templates/animals/animal',
    elementId:Ember.computed(function(){
      'animal-'+this.getPath('content.name')
    })
  })
});

在动物模板中:

{{ content.get('name') }} - {{ content.get('pluralized') }}

最后在你的主html文件中

<script type="text/x-handlebars">
  {{ view App.AnimalsListView }}
</script>

答案 1 :(得分:0)

您只能使用id="whatever"在视图上指定ID,但它不适用于{{#each}}

http://jsfiddle.net/tomwhatmore/TJvR6/

可能是一个稍微优雅的解决方案,但我在js小提琴中放入的东西似乎有效。