我想获取Ember生成的元素ID。
{{#each}}
<div>
<h1>{{MyComponent}}</h1>
</div>
{{/each}}
呈现如下内容:
<div id="ember180" class="ember-view">
<h1>My Component here</h1>
</div>
我需要获取控制器内每个div元素的ID。如果必须使用自定义ID,那么如何使用余烬视图创建自定义ID。
以及如何在控制器中通过其ID识别每个div元素?
我不确定您的确切意思,但是我可以回答:
以及如何在控制器中通过其ID识别每个div元素?
工作示例查看console.log以查看元素ID,然后使用Google Chrome或Firebug检查组件元素以查看ID是否相同。
App.ItemOneComponent = Ember.Component.extend({
didInsertElement: function(){
console.log('element id: ' + this.elementId);
}
});
this
组件内部是该组件,elementId获取id
div的div(如果tagName
在组件内部使用,则使用不同的标记)。
如果要使用JQuery选择组件this.$()
,请在组件内部使用:。
现在这里是我不知道您需要什么的地方,因此我将提出一些建议。如果您需要从控制器了解每个组件的ID,建议您将位于控制器上的数组传递给组件。在中didInsertElement
,将elementId
或jQuery
对象添加到数组中。这就是我的意思
App.IndexController = Ember.ArrayController.extend({
componentIds: []
});
App.ItemOneComponent = Ember.Component.extend({
didInsertElement: function(){
this.get('array').pushObject(this.elementId);
}
});
并且您的组件将属性传递给: {{item-one array=controller.componentIds}}
您还可以jQuery
通过动作发送组件的ID或对象,this.sendAction('actionName', componentId)
并在控制器上定义一个带有一个参数的动作(即componentId或jQuery对象)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句