我在aureliajs写我的客户端应用程序。默认情况下,对于这样的路线:
/app/access/management
我的应用程序呈现如下:
例如,假设标题和侧边栏在app
上呈现,然后在access
中呈现一个公共容器,最后在management
中呈现主html。
现在我有一个access
的子组件,例如名称为list
。在这个组件中,我希望页面在没有任何父容器的情况下呈现(没有父html标签)。
所以我想我有一些解决方案:
list
,例如/app1/access/list
,它不会在app1和访问上呈现任何额外的html。app
和access
内部制定条件以决定绘制页眉和页脚等。list
中的函数来隐藏父项中的绘制布局。但我找不到最好的方法。例如,告诉父母不呈现某事的方法。
什么是最佳实践或模式?
与MVC风格的主/布局页面类似,Aurelia允许您为一组视图使用“布局”视图,如MVC“主模板”。
作为布局一部分的视图集在Aurelia中定义为由路由器配置中的一个或多个路由引用的一组视图。有两种方法可以将布局与路径相关联。第一个是通过HTML,第二个是通过视图模型代码。 ...
和
...要在router-view自定义元素上指定布局,我们使用以下属性:
- layout-view - 指定要使用的布局视图的文件名(带路径)。
- layout-view-model - 指定要与布局视图一起使用的视图模型的moduleId。
- layout-model - 指定要传递给布局视图模型的activate函数的模型参数。 ...
然后通过路由配置:
...我们还可以使用视图模型中的代码将布局与路径配置相关联。假设我们喜欢上面已经完成的操作,但是我们有一些想要与不同布局关联的视图,因此我们希望部分覆盖HTML中给出的配置。以下代码是我们如何做到这一点的一个例子:...
我建议你仔细阅读这篇文章:aurelia router configuration --> Layouts
您可以使用条件,如果access component
ViewModel检查路由是否为/app/access/list
,然后组件加载容器less属性。