Nie jestem pewien co masz na myśli, ale mogę odpowiedzieć:
i jak mogę zidentyfikować każdy element div przez jego id wewnątrz kontrolera?
Working Example Spójrz na console.log zobaczyć identyfikator elementu, a następnie korzystać z Google Chrome lub Firebug do wglądu element składowy, aby zobaczyć, że id jest taka sama.
App.ItemOneComponent = Ember.Component.extend({
didInsertElement: function(){
console.log('element id: ' + this.elementId);
}
});
this
wewnątrz komponentu jest składnikiem, a elementId dostaje id
div (lub inny znacznik jeśli używasz tagName
wewnątrz komponentu).
Jeśli chcesz wybrać komponent z JQuery, użyj: this.$()
wewnątrz komponentu.
Teraz tutaj nie wiem, czego potrzebujesz, więc zamierzam podać kilka sugestii. Jeśli potrzebujesz znać identyfikatory każdego komponentu z kontrolera, poleciłbym przekazanie tablicy zawierającej kontroler do komponentu. W swoim didInsertElement
dodaj do tablicy obiekt elementId
lub jQuery
. Here is what I mean
App.IndexController = Ember.ArrayController.extend({
componentIds: []
});
App.ItemOneComponent = Ember.Component.extend({
didInsertElement: function(){
this.get('array').pushObject(this.elementId);
}
});
I komponent przechodzi obiektu: {{item-one array=controller.componentIds}}
Można również wysłać identyfikator komponentu lub jQuery
obiektu poprzez działania z this.sendAction('actionName', componentId)
i mają działanie zdefiniowane na kontrolerze, która pobiera jeden parametr (czyli ID_składnika lub obiekt jQuery.