Ember:来自进口mixin的压倒性财产?

问题描述 投票:0回答:1

我有一个简单的mixin,它使用一个属性来执行一个动作。我正在尝试建模继承,以便我可以在使用mixin的Component中覆盖此属性。

对于覆盖任何OO语言的相同好处。

我很欣赏使用extend可能更适合建模继承,但我想知道这是否可能与mixin。


我已经尝试使用this.get('')从我的组件中检索mixin中不存在的属性。这个想法是我可以检查程序员是否想要指定要关注的元素。如果没有,请使用默认值。即使在实现组件上定义了属性,也不会返回任何内容。

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();
});

如果你能看到我想要实现的目标,那么最好的方法是什么?

ember.js mixins
1个回答
0
投票

谢谢你的评论。他们似乎证实了我的怀疑,我试图/尝试过的很多东西都应该有效。

我的朋友用const focusElement = document.querySelector(this.elementToFocus); 开始工作

我不确定我做错了什么。

© www.soinside.com 2019 - 2024. All rights reserved.