我正在用aureliajs编写客户端应用程序。默认情况下,对于这样的路由:
/app/access/management
我的应用程序是这样呈现的:
例如,假设页眉和侧边栏在app
上呈现,然后在access
中呈现通用容器,最后在management
中呈现主要html。
现在我有一个access
子组件,例如,名称为list
。并且在此组件中,我希望呈现的页面没有任何父容器(没有父html标签)。
所以我想我有一些解决方案:
在另一个模块中制作list
,例如/app1/access/list
,它不会在app1和访问上呈现任何其他html。
在app
和access
内设置条件以决定绘制页眉和页脚等。
在list
中调用一个函数以将绘制的布局隐藏在父级中。
但是我找不到最好的方法。例如,一种告诉父母不要渲染东西的方法。
什么是最佳做法或模式?
答案 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