Ember: главное свойство импортированного миксина? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть простой миксин, который использует свойство для выполнения действия.Я пытаюсь смоделировать наследование, чтобы я мог переопределить это свойство в Компоненте, использующем миксин.

Для того же преимущества переопределения в любом языке OO.

Я ценю использование extend, может быть предпочтительнее для моделирования наследования, но мне интересно, возможно ли это с миксином.


Я пытался использовать this.get('') для получения свойства из моего компонента, которого нет в миксине.Идея в том, что я могу проверить, хочет ли программист указать элемент для фокусировки.Если нет, используйте значение по умолчанию.Это ничего не возвращает, даже если свойство определено в компоненте реализации.

import $ from 'jquery';
import Mixin from '@ember/object/mixin';

export default Mixin.create({
  didRender() {
    this._super(...arguments);
    $(this.get('elementToFocus') ? this.get('elementToFocus') : 'h1').focus();
  }
});

Я также пытался использовать свойство в mixin, а затем дублировать свойство в компоненте.Это ломает все и дает мне случайные ошибки.

import $ from 'jquery';
import Mixin from '@ember/object/mixin';

export default Mixin.create({
  elementToFocus: 'h1',
  didRender() {
    this._super(...arguments);
    $(this.get('elementToFocus')).focus();
});

Если вы видите, чего я пытаюсь достичь, какой лучший способ сделать это?

1 Ответ

0 голосов
/ 26 февраля 2019

Спасибо, ребята, за ваши комментарии.Кажется, они подтверждают мои подозрения, что многое из того, что я пытался / пытался, ДОЛЖНО сработать.

Мой друг заставил его работать, используя const focusElement = document.querySelector(this.elementToFocus);

Я не уверен, что я делал неправильно.

...