ember.js 将操作与ember-bootstrap一起使用的正确方法

gudnpqoy  于 2022-11-05  发布在  Bootstrap
关注(0)|答案(1)|浏览(165)

创建了一个新的ember辛烷应用程序(3.15),并使用ember引导程序。我正在使用这样的模态

<BsModalSimple
  @open={{true}}
  @title="Create new podcast"
  @closeTitle="Cancel"
  @submitTitle="Create"
  @size="lg"
  @closeButton={{false}}
  @fade={{false}}
  @backdrop={{true}}
  @backdropClose={{false}}
  @renderInPlace={{false}}
  @onHidden={{action 'closeModal'}}
  @position="center">
</BsModalSimple>

这是可行的,但我得到一个错误,说
请勿使用action做为{{action...}}。请改用on修饰词和fn协助程式。
在这种情况下,什么是正确的操作方式?我试过了,但没有效果

{{on 'hidden' this.closeModal}}
4ktjp1zp

4ktjp1zp1#

在经典的Ember模型(pre-octane)中,{{action}}帮助器被用来将正确的this上下文绑定到作为闭包操作传递的操作/方法。因此,当闭包操作在任何类中被调用时,该操作将拥有调用者的this上下文,而不是被调用者的上下文。
为了更加可预测和明确,这个上下文绑定被移动为装饰器@action,它应该用来装饰你的closeModal方法,而不是使用模板中的{{action}}帮助器。因此,你的代码可以是:
第一个
请注意,该错误是由linter(ember-template-lint)引发的,使用@action装饰器可以使错误消息更加明确。

相关问题