尝试在组件的模板中执行此代码
// components/my-component.js
{{#if session.isAuthenticated}}
<a {{action 'invalidateSession'}}>Sign out</a>
{{else}}
{{#link-to 'signin'}}Sign in{{/link-to}}
{{/if}}
然而,当点击&#34;退出&#34;按钮我收到此错误
Error: <...@component:my-component::ember381> had no action handler for: invalidateSession
如何制作&#34; invalidateSession&#34;可以从组件中获得吗?
答案 0 :(得分:2)
您可以实施自己的invalidateSession
操作:
actions: {
invalidateSession: function() {
this.get('session').invalidate();
}
}
或简单地将动作从组件转发到路线:
{{my-component invalidateSession='invalidateSession'}}
答案 1 :(得分:0)
您需要将简单身份验证ApplicationRouteMixin
添加到ApplicationRoute
。例如,如果您使用的是ES6模块
import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';
ApplicationRoute = Ember.Route.extend ApplicationRouteMixin,
该操作应该冒泡到应用程序路径,然后处理它。
请参阅文档here