【问题标题】:Access mixin properties from controller从控制器访问 mixin 属性
【发布时间】:2015-03-27 06:57:58
【问题描述】:

我有一个混合:

export default Ember.Mixin.create({
    queryParams: ['abc', 'def', 'ghi']
});

和一个控制器:

import SampleMixin from 'app/mixins/sample-mixin';
export Ember.ObjectController.extend(SampleMixin, {
   queryParams: function () {
        var mixinQParams = this.getMixinParams();
        mixinQParams.append('xyz');
        return mixinQParams;
   }.property()
});

我的问题是我们如何获取 mixin 的 queryParam,以便我们可以对其进行编辑或添加更多值,即使用什么来代替上面的 getMixinParams() 以获得 mixin 属性。

【问题讨论】:

  • 您可能正在寻找concatenatedProperties
  • 但是如何将属性声明为 concatenatedProperty 而不是常规属性?

标签: javascript ember.js ember-cli mixins


【解决方案1】:

您正在寻找串联属性:

export default Ember.Mixin.create({
    queryParams: ['abc', 'def', 'ghi'],
    concatenatedProperties: ['queryParams']
});

然后

import SampleMixin from 'app/mixins/sample-mixin';
export Ember.ObjectController.extend(SampleMixin, {
   queryParams: ['xyz']
});

现在

<< this.get('queryParams')
>> ['abc', 'def', 'ghi', 'xyz']

【讨论】:

  • 太棒了。我会对此进行测试并回复您
  • @torazaburo 这也可以在组件中使用吗?我用组件尝试过,它给出了错误,因为get is not a function
猜你喜欢
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多