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