我已经设置了一个状态管理器来跟踪用户登录状态,基于这里的答案:Change Navbar based on login state
但是,我想将其带到下一步,不仅根据状态更新导航栏,还包括主模板本身。我已经完成了这项工作,因此当您单击登录按钮时,它会向您显示“欢迎您现在已登录”消息。但是,如果您注销并尝试再次登录,它只会显示一个空白屏幕,就好像它没有正确地重新渲染索引路由一样。这是我的问题的 JSFiddle。请注意当您单击登录/注销然后第二次登录时会发生什么。不显示“欢迎”消息。
这是我的索引模板:
{{render navbar}}
{{authState}}
{{#if isAuthenticated}}
{{outlet}}
{{else}}
{{render login}}
{{/if}}
我可以看到“authState”是正确的,但“插座”在我第二次登录时没有呈现...
这是完整的jsfiddle:
http://jsfiddle.net/Benmonro/HmJyu/1/
澄清
@ham 要求澄清,所以这里是:
我在这里要完成的主要事情是,当状态管理器更改状态时,应该将isAuthenticated
当前渲染的{{outlet}}
内容换成{{render login}}
实际可以是任何模板的渲染内容。要点是{{outlet}}
它将显示和隐藏状态变化......