aurelia js条件父布局

问题描述 投票:4回答:2

我在aureliajs写我的客户端应用程序。默认情况下,对于这样的路线:

/app/access/management

我的应用程序呈现如下:

rendering schema

例如,假设标题和侧边栏在app上呈现,然后在access中呈现一个公共容器,最后在management中呈现主html。

现在我有一个access的子组件,例如名称为list。在这个组件中,我希望页面在没有任何父容器的情况下呈现(没有父html标签)。

所以我想我有一些解决方案:

  1. 在另一个模块中制作list,例如/app1/access/list,它不会在app1和访问上呈现任何额外的html。
  2. appaccess内部制定条件以决定绘制页眉和页脚等。
  3. 调用list中的函数来隐藏父项中的绘制布局。

但我找不到最好的方法。例如,告诉父母不呈现某事的方法。

什么是最佳实践或模式?

module render aurelia
2个回答
3
投票

与MVC风格的主/布局页面类似,Aurelia允许您为一组视图使用“布局”视图,如MVC“主模板”。

作为布局一部分的视图集在Aurelia中定义为由路由器配置中的一个或多个路由引用的一组视图。有两种方法可以将布局与路径相关联。第一个是通过HTML,第二个是通过视图模型代码。 ...

...要在router-view自定义元素上指定布局,我们使用以下属性:

  • layout-view - 指定要使用的布局视图的文件名(带路径)。
  • layout-view-model - 指定要与布局视图一起使用的视图模型的moduleId。
  • layout-model - 指定要传递给布局视图模型的activate函数的模型参数。 ...

然后通过路由配置:

...我们还可以使用视图模型中的代码将布局与路径配置相关联。假设我们喜欢上面已经完成的操作,但是我们有一些想要与不同布局关联的视图,因此我们希望部分覆盖HTML中给出的配置。以下代码是我们如何做到这一点的一个例子:...

我建议你仔细阅读这篇文章:aurelia router configuration --> Layouts


3
投票

您可以使用条件,如果access component ViewModel检查路由是否为/app/access/list,然后组件加载容器less属性。

© www.soinside.com 2019 - 2024. All rights reserved.