AngularJS:仅限横向模式,但“orientationchange”在AngularJS中不起作用

时间:2014-06-06 16:13:49

标签: javascript angularjs orientation landscape portrait

我试图让我的应用程序仅在横向模式下工作,我必须显示类似于&#34的文本;请使用横向模式"如果用户处于纵向模式且全部在AngularJS中。 我在jQuery中尝试了它并且它完全正常工作但我们没有使用jQuery,所以我必须使用AngularJS。

这是我的简单控制器:

app.controller('rootCtrl', ['$scope', '$http', function ($scope, $http) {
    window.addEventListener("orientationchange", function() {
        if(window.orientation == 0) {
            // alert(window.orientation) : I get this value when rotate my device
            $scope.islandscape = false;
        }else {
             // alert(window.orientation) : I get this value when rotate my device
             $scope.islandscape = true;
    }           
}, false);

}]);

以下是我的看法:

<div id="p" ng-show="islandscape == false">
    <h1 style="width: 90%; margin: 2em auto; font-size: 4em;">Please Use Landscape Mode</h1>
</div>

<div id="l" ng-show="islandscape == true">
    <div ng-include="'templates/header.htm'"></div>
    <div id="dataContent" ng-view></div>
    <div ng-include="'templates/footer.htm'"></div>
</div>

以下是jQuery中的工作代码,但我不能使用jQuery

$(document).ready(function() {
    readDeviceOrientation();
});

function readDeviceOrientation() {

    if (Math.abs(window.orientation) === 90) {
        $("#p").hide();
        $("#l").show();
    } else {
      $("#l").hide();
        $("#p").show();
    }
}

window.onorientationchange = readDeviceOrientation;

我是AngularJS的新手,不知道我在这里错过了什么,或者我的逻辑可能不正确。我怎样才能使这个工作?

0 个答案:

没有答案