aureliajs条件父布局

时间:2019-04-07 08:00:11

标签: module render aurelia

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

/app/access/management

我的应用程序是这样呈现的:

rendering schema

例如,假设页眉和侧边栏在app上呈现,然后在access中呈现通用容器,最后在management中呈现主要html。

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

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

  1. 在另一个模块中制作list,例如/app1/access/list,它不会在app1和访问上呈现任何其他html。

  2. appaccess内设置条件以决定绘制页眉和页脚等。

  3. list中调用一个函数以将绘制的布局隐藏在父级中。

但是我找不到最好的方法。例如,一种告诉父母不要渲染东西的方法。

什么是最佳做法或模式?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

  

类似于MVC样式的母版/版面页面,Aurelia允许您使用   “布局”视图就像一组视图的MVC“主模板”。

     

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

  

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

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

,然后通过路由配置:

  

...我们还可以使用以下代码将布局与路由配置相关联   我们的视图模型。假设我们喜欢上面所做的事情,但是我们有一个   我们想要与其他布局相关联的几个视图   因此希望部分覆盖在中给出的配置   HTML。以下代码是我们如何执行此操作的示例:   ...

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