2012-09-19 1 views
4

Comment puis-je accéder aux attributs des éléments DOM qui sont insérés par la vue ember.js, à partir de la vue elle-même. Voici un petit exemple. Disons que je le modèle cat.handlebars suivant:Accès aux attributs des éléments DOM à partir des vues ember.js

{{#collection contentBinding="App.catsController"}} 
    <div class="cat" {{bindAttr id="view.content.id"}}></div> 
{{/collection}} 

qui est utilisé dans ce point de vue:

App.CatView = Ember.View.extend({ 
    templateName: 'cat', 
    catsBinding: 'App.catsController', 
    didInsertElement:() -> 
    #need to get the id of each DIV that is being inserted to add some JavaScript for it 
    console.log 'context it ', this.$() 
}) 

this.$() retourne un objet très profondément imbriqués et je ne trouve aucun signe de mes DIVs en elle. De plus, view.content.id n'est pas défini lorsque je suis dans la fonction didInsertElement.

Pour réitérer ma question, quand je suis dans une vue, comment puis-je ajouter du code Javascript lié à certains des éléments DOM qui sont insérés par la vue.

Répondre

2

Vous pouvez utiliser {{view.contentIndex}} au lieu de {{view.content.id}}. Puisque vous avez ajouté un nom de classe cat à votre div, vous pouvez y accéder en utilisant ceci. $ ('# Index.cat'), où index devrait être remplacé par l'index du contenu auquel vous voulez accéder.

Questions connexes