Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js:如何重写我的超类之一&x27;组件中的操作是什么?_Ember.js - Fatal编程技术网

Ember.js:如何重写我的超类之一&x27;组件中的操作是什么?

Ember.js:如何重写我的超类之一&x27;组件中的操作是什么?,ember.js,Ember.js,这是Ember.js2.11。如果我有一个组件: app/components/a/component.js export default Ember.Component.extend({ actions: { foo() { ... } } }); import A from 'components/a'; export default Ember.Component.extend(A, { ... }); 以及从中继承的另一个组件: app/componen

这是Ember.js2.11。如果我有一个组件:

app/components/a/component.js

export default Ember.Component.extend({
   actions: {
      foo() { ... }
   }
});
import A from 'components/a';

export default Ember.Component.extend(A, {
  ...
});
以及从中继承的另一个组件:

app/components/b/component.js

export default Ember.Component.extend({
   actions: {
      foo() { ... }
   }
});
import A from 'components/a';

export default Ember.Component.extend(A, {
  ...
});

如何覆盖
B
中的
foo
?定义我自己的
操作
对象似乎不起作用。

默认情况下
操作
哈希是mergedProperties,这就是它不被覆盖的原因。你可以看到。 您可以看到合并属性的解释

定义将从超类合并(而不是重写)的属性

你可以像下面那样延伸

import A from 'components/a';

export default A.extend({
  ...
  actions: {
    foo() { ... }
  }
});
您可以在组件b中定义
foo
操作。如果要从组件b调用组件a的foo操作,可以调用
this.\u super(…参数)


啊,谢谢。结果证明我的问题是不同的(不是在我的最小示例中)。