响应+角度:当屏幕很大时,将行为从路由更改为简单刷新数据?

时间:2014-06-17 09:42:25

标签: angularjs

我正在开发一个小应用程序来管理消息。这样的应用程序在大屏幕上有两个面板:一个带有消息列表的侧边栏和一个带有消息详细信息的面板:[] []。但是如果屏幕较小(智能手机)并且仅仅因为我们希望它具有响应性,则侧边栏是唯一显示的内容,当您单击消息时,显示隐藏侧边栏的详细信息。

使用Angular,最后一种方法很容易做一些路由,它运行得很好。我的问题来自当屏幕很大足以同时接受两个面板时,因为我希望Angular仍能控制流量而不是隐藏/显示任何面板我希望两个视图都可见

当屏幕较小时,是否可以使用Angular进行路由(一次一个视图),但是当屏幕较大时可以更改行为以一次显示两个视图?

顺便说一下,我正在使用Bootstrap来控制响应速度并且工作得很好(面板隐藏/显示取决于屏幕大小),我只是担心我现在如何使用Angular来处理它。

实施例

只是为了看看我能否更好地解释自己,这就是我希望屏幕足够大的时候:http://plnkr.co/edit/WuN08Q?p=preview(确保你让预览屏幕大到足以看到它,点击一条消息,然后调整大小以查看细节如何隐藏)

当它很小时:http://plnkr.co/edit/UL1OpXjzEcCU9722lpA9?p=preview

第一个示例有两个面板可见,其中一个面板在屏幕变小时隐藏,第二个示例使用两个视图,并在屏幕较小时按照我想要的方式工作。现在我想要的是让它在屏幕足够大时表现得像第一个例子,当它很小时就像第二个

谢谢Angular巫师!

2 个答案:

答案 0 :(得分:2)

您可以使用templateUrl部分中的函数在app app中进行路由,并根据当前窗口大小更改templateUrl。我敢说你在控制器中会有相同的功能,所以只需对templateUrl进行更改即可。

注意:在我下面的示例中,我刚刚将窗口大小逻辑放在需要的位置,您可以将其放在应用程序中的其他位置,例如帮助文件或服务。

实施例 http://plnkr.co/edit/udDlJT?p=preview

答案 1 :(得分:2)

可能不是你正在寻找的答案,但是建立起来的一个解决方案Jonathan Hair的答案包含在你原来的一个分叉中:

http://plnkr.co/edit/chdn6XDpdnqaay3VfOqI?p=preview

此解决方案不是首选,因为当您突破sm /大屏障(在这种情况下为768px宽度)时,最终必须刷新才能获得预期的渲染行为。

我认为解决此问题的更好方法是不使用路由。 (这正是我为你的“大观点”所做的。)

作为一个例子,这是一个统一的范围,它利用了引导响应实用程序,并建立了Jonathan的大小检测。在调整屏幕大小时,它应该遵循预期的行为。无需路由。

http://embed.plnkr.co/b7sSyDjRLSRrJF29l01d/preview