ember具有各种id的多个组件

时间:2017-03-22 09:42:32

标签: javascript ember.js ember-router ember-components ember-controllers

我在ember中有一个组件,我把它命名为foo

import Ember from 'ember';
var data, elTop;
export default Ember.Component.extend({
  init(){
    this._super(...arguments);
  },
  didInsertElement(){
    this._super(...arguments);
    data = this.get('id');
    elTop = $('#'+data).offset().top;
    console.log(elTop);
  }
});
不过,我在父模板中使用了这个组件两次,并且每个组件的位置不同,但是为什么当iam控制台记录偏移量时顶点的值与它相同。

任何人都可以解释这个并解决它吗?并且我避免使用这个console.log($('#'+data).offset().top)它的工作,但是当我在滚动事件上使用时显示出毛刺。

谢谢你:)

1 个答案:

答案 0 :(得分:0)

您需要在组件中引入属性elTop data 您可以使用this.$

访问组件dom
import Ember from 'ember';
export default Ember.Component.extend({
    data: '',
    elTop: '',
    didInsertElement() {
        this._super(...arguments);
        elTop = this.$().offset().top;
        console.log(elTop);
    }
});