Ember вызывает закрытие действия - PullRequest
0 голосов
/ 12 апреля 2019

В 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 Ответ

3 голосов
/ 12 апреля 2019

attr - неофициально устарела, афаик.

в следующей редакции Ember, Octane, атрибуты будут означать только атрибуты только для HTML, а args будет то, что находится в ember-land.

В будущем / Сейчас (если вы хотите поиграть с октановым планом (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>
...