我不知道你的意思到底是什麼,但我可以回答:
我怎樣才能通過其內部控制器ID識別每個div元素?
Working Example查看console.log以查看元素ID,然後使用Google Chrome或Firebug檢查組件元素以查看該ID是否相同。
App.ItemOneComponent = Ember.Component.extend({
didInsertElement: function(){
console.log('element id: ' + this.elementId);
}
});
this
組件裏面的組件,並且elementId得到div的id
(或不同的標籤,如果你使用tagName
組件內)。
如果要使用JQuery選擇組件,請在組件內部使用:this.$()
。
現在,這裏是我不知道你需要什麼,所以我要拋出一些建議。如果您需要知道控制器中每個組件的ID,我建議將位於控制器上的陣列傳遞給組件。在您的didInsertElement
中,將elementId
或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);
}
});
而且您的組件通過在屬性:{{item-one array=controller.componentIds}}
您還可以通過一個動作組件發送的ID或jQuery
物體this.sendAction('actionName', componentId)
,並有一個參數控制器上定義的動作(即該COMPONENTID或jQuery對象。