В классовой модели c Ember (дооктана), помощник {{action}}
использовался для привязки правильного контекста this
к действию / методу, который передается как закрывающее действие. Таким образом, когда закрывающее действие вызывается внутри любого класса, действие будет иметь контекст this
вызывающего, а не вызываемого.
Чтобы быть более предсказуемым и явным, эта привязка контекста была перемещена как декоратор, @ action , который следует использовать для украшения вашего метода closeModal
вместо использования помощника {{action}}
в шаблоне. Итак, ваш код может быть:
<!-- application.hbs -->
<BsModalSimple
@open={{true}}
@title="Create new podcast"
@closeTitle="Cancel"
@submitTitle="Create"
@size="lg"
@closeButton={{false}}
@fade={{false}}
@backdrop={{true}}
@backdropClose={{false}}
@renderInPlace={{false}}
@onHidden={{this.closeModal}}
@position="center">
</BsModalSimple>
// controllers/application.js
import Controller from "@ember/controller";
import { action } from "@ember/object";
export default class ApplicationController extends Controller {
@action
closeModal() {
// your implementation
}
}
Обратите внимание, что ошибка была выдана linter (ember-template-lint), и сообщение об ошибке может быть более явным использовать @action decorator.