Кнопка Ember Octane Logout исчезает - PullRequest
0 голосов
/ 03 апреля 2020

Я обновляюсь до Ember Octane и модифицировал шаблон HBS для вызова компонента JS. Когда я использую Ember Classi c, кнопка «Выход» существует и работает. Но когда я конвертирую в Octane, кнопка «Выход» исчезает. o_O

Как правильно отобразить кнопку выхода из системы на шаблоне HBS? Примечание: у меня нет файла компонента HBS. Требуется ли это в Ember Octane?

Classi c Фрагмент шаблона HBS:

<li><a href="#" onclick={{action "logout"}}>Logout</a></li>

Фрагмент шаблона HBS Octane:

<li><a href="#" onclick={{on "submit" this.logout}}>Logout</a></li>

Компонент октана JS ( работает с шаблоном Classi c, но не с шаблоном Octane):

import Component from '@ember/component';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';

export default class Navigation extends Component {    

    @service session
    @service currentClient

    @action
    logout(ev) {

        ev.preventDefault();

            this.session.invalidate();
    }
}

1 Ответ

3 голосов
/ 03 апреля 2020

Проблема здесь заключается в неправильном использовании модификатора on. Модификатор on должен использоваться в пространстве элементов, тогда как в вашем фрагменте модификатор on использовался в качестве помощника.

Следует использовать следующим образом:

<button {{on "click" this.logout}}> Logout </button>

Это означает, что мы просим платформу зарегистрировать предоставленную функцию this.logout для события click.

и not as:

<button onclick={{on "click" this.logout}}> Logout </button>

Это руководство должно помочь перейти от обработки событий classi c к новейшему способу Octane.

...