灰烬调用关闭动作

时间:2019-04-12 18:16:45

标签: javascript ember.js ember-cli

在Ember JS中,说我有一个如下定义的组件(HBS / JS)

parent.hbs

{{longclaw-sword attack=(action swing)}}

app/components/longclaw-sword.js

export default Ember.Component.extend({
  click() {
    this.attack();
  }
});

使用调用关闭动作之间是否有区别 this.attack() V / s this.attr.attack()

在哪种情况下使用“ attr”?它可以用于引用常规属性还是仅用于操作?

1 个答案:

答案 0 :(得分:3)

attr是非官方弃用的afaik。

在即将发布的Ember,Octane版本中,属性将特别意味着仅HTML属性,而 args 将成为余烬之地。

将来/现在(如果您想使用辛烷值蓝图(https://github.com/ember-cli/ember-octane-blueprint),上面的内容将是这样:

@action swing() {
  // whatever this does :)
}

<LongclawSword @attack={{this.swing}} />

// in longclaw-sword:
import Component from '@glimmer/component';

export default LongclawSword extends Component {
  @action click() {
    this.args.attack();
  }
}
// or, if you don't need to wrap attack, you can do this inside longclow's template:
<button {{on 'click' this.args.attack}}>click</button>