角度:方向改变不正常

时间:2015-01-12 12:16:34

标签: angularjs screen-orientation matchmedia

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

$scope.landscape = matchmedia.isLandscape();

这很好用。但是当我想要检测方向的变化时,我使用这个代码:

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

因此,当方向改变时,页面将被重新加载,并且它将再次检测方向。但现在它反过来了。所以它说景观==假,它应该是真的。有谁知道这是为什么?或者我使用错误的技术来处理方向变化?提前谢谢!

2 个答案:

答案 0 :(得分:0)

尝试:)

screen.bind('orientationchange', function () {
    $route.reload();
});

答案 1 :(得分: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