我遵循ESA dummy app示例步骤来实现隐式授权身份验证。它工作正常,但我想知道如何在下面的情况下进行:
- 通常我们在应用程序模板中定义navbar
- application.js
路由定义为that
- 仅当用户通过身份验证时,我才需要在application
模板的导航栏中的下拉列表中加载所有商店。
- 在application.hbs
模板中,我按如下方式定义了select
列表:
{{#if session.isAuthenticated}}
<li class="nav-item">
<select>
{{#each model as |shop|}}
<option value={{shop.id}}>{{shop.shopName}}</option>
{{/each}}
</select>
</li>
{{/if}}
如果我将模型挂钩添加到application.js
路由器:
model() {
if (this.get("session.isAuthenticated")) {
return this.store.findAll('shop');
}
},
它可以工作,但我必须刷新页面才能填充下拉列表。好像,我的model
挂钩被忽略,因为before_model
挂钩验证了用户:
beforeModel() {
return this._loadCurrentUser();
}
有什么想法吗?谢谢。
答案 0 :(得分:0)
当您使用ember-simple-auth
时,您可以将sessionAuthenticated
方法添加到应用程序路由并刷新路径:
sessionAuthenticated() {
this._super(...arguments);
this.refresh();
}