我有一个SPA需要以两种完全不同的方式显示我的应用程序,具体取决于客户端设备。
一个显示我房子的平面图,带有灯泡图标,用于打开/关闭我的灯(以及更多信息),使用等轴测投影在画布上渲染。
另一个(主要用于移动设备)在更简单的列表/汉堡菜单中显示相同的灯泡图标和名称。
我不想将设备类型限制为我想要的视图,但是根据设备/所选视图完全替换组件的最佳方法是什么?
我应该创建两个组件并将共享逻辑移动到服务/类吗?或者我应该隐藏不需要的组件(我不想浪费资源渲染画布或运行渲染它所需的逻辑)
答案 0 :(得分:2)
如果您使用*ngIf
或类似内容,则如果表达式为false,则[hidden]="..."
导致HTML呈现时,不会呈现任何内容。
无论如何,将逻辑转移到服务是一种很好的做法。
您还可以根据视图大小加载不同的路由器配置 另见New Angular2 router configuration。这样,您可以为不同的视图大小加载完全不同的组件。
(看起来这将在下一版本中得到改进,例如只为组件加载新的子路由,还有讨论提供允许添加/删除单个路由的API)