вставить несколько компонентов с разными идентификаторами

у меня есть компонент в 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) его работы, но показываю сбой, когда я использую событие прокрутки.

благодарю вас :)


person cahyowhy    schedule 22.03.2017    source источник


Ответы (1)


Вам нужно ввести свойства elTop data внутри компонента.
Вы можете получить доступ к dom компонента, используя this.$

import Ember from 'ember';
export default Ember.Component.extend({
    data: '',
    elTop: '',
    didInsertElement() {
        this._super(...arguments);
        elTop = this.$().offset().top;
        console.log(elTop);
    }
});
person Ember Freak    schedule 22.03.2017