2012-01-25 56 views
4

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

如果你看一看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> 

无论股利,也不是UL(这将是最实用的方式)获得指定的ID。 有没有可能?如果不是,我如何通过Ember访问这些元素?

回答

0

您只需指定使用id="whatever"视图的ID,但它不会在{{#each}}

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

工作可能是一个稍微更优雅的解决方案,但我已经摆在那的js小提琴似乎工作。

3

我试着设置,而不是“身份证” elementId'对“#each”,但它似乎没有工作要么...

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

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>