0

我正在开发一个角度应用程序,并尝试使用 matchmedia 实现方向更改。当我第一次加载我的页面时,我在我的控制器中运行一行代码来检查我是否处于横向状态:

$scope.landscape = matchmedia.isLandscape();

这工作正常。但是当我想检测方向的变化时,我使用以下代码:

angular.element($window).bind('orientationchange', function () {
    $route.reload();
});

因此,当方向改变时,页面会重新加载,它会再次检测方向。但现在它给出了相反的结果。因此,当它应该为真时,它会说景观 == 假。有人知道这是为什么吗?还是我使用了错误的技术来处理方向变化?提前致谢!

4

2 回答 2

0

尝试:)

screen.bind('orientationchange', function () {
    $route.reload();
});
于 2015-01-12T12:25:10.820 回答
0

你可以试试:

angular.element($window).bind('resize orientationchange', function (e) {
    console.log('resize or orientationchange: ' + e.type);
    $route.reload();
});

在浏览器模拟器中,当方向改变时,我会得到“调整大小”。但在设备上我得到“orientationchange”。

这是我在网上找到的一个例子。它不适用于桌面的 chrome,但它适用于设备的 chrome:

http://codepen.io/xAlien95/pen/EaNVNW

于 2016-03-04T14:35:52.337 回答