在我当前的 Ember 项目中,我有一个身份验证系统。某些页面只能由经过身份验证的用户查看。检查用户是否通过身份验证并控制对页面的访问非常简单,因此没有问题。
问题是我有某些页面可供经过身份验证和未经身份验证的用户查看。经过身份验证的用户看到的导航(顶部和侧边栏)与未经过身份验证的用户(更多导航选项、设置等)不同。我想根据用户是否经过身份验证来更改使用的布局。问题是我似乎只能将一个布局设置为视图。
一般代码如下所示:
布局:
<script type="text/x-handlebars" data-template-name="authenticated_layout">
//authenticated layout mark up
{{yield}}
</script>
<script type="text/x-handlebars" data-template-name="not_authenticated_layout">
//not_authenticated layout mark up
{{yield}}
</script>
文章模板(文章可以被认证或非认证用户查看):
<script type="text/x-handlebars" data-template-name="article">
//article mark up
</script>
文章视图:
App.ArticleView = Ember.View.extend({
templateName: "article",
layoutName: //want this to be based on authentication state
//other view code
})
我对每个布局都有不同的视图,并根据用户是否经过身份验证使用视图呈现模板。我看到的问题ArticlesView
不仅仅是设置布局,我真的不希望有两个单独的视图,它们的layoutName
属性不同。
任何建议将不胜感激。