正确处理屏幕/设备方向

时间:2015-12-01 21:08:58

标签: android html5 ionic-framework orientation screen-orientation

我有这个例子:http://codepen.io/poliveira89/pen/VeZLJX/

在这个例子中,我有一个<ion-nav-view></ion-nav-view>,我在其中插入一个带有2个标签的选项卡视图(主页和关于),嵌套视图和嵌套状态。

我的主要关注点:检索屏幕/设备方向并动态重新排列纵向和横向方向的内容。

在“主页”选项卡上,我“假装”实现=&gt;更新有关屏幕旋转后模型更改的视图(HTML)。这显然不适用于模拟器和真实设备。

我在“关于”选项卡上复制了该示例,因为在“主页”选项卡上不起作用,但我稍微更改了代码,我尝试了一些带有按钮的“刷新”触发器(ng-click)和带有警报的$ timeout 。当我单击按钮时,View将使用Model上的新值刷新HTML。

注意:我尝试过其他触发器 - $http$interval,...

我认为这可能与NavView上的“缓存”有关,如下所示:

.state('tabs.home', {
  url: "/home",
  cache: false,
  views: {
    'home-tab': {
      templateUrl: "templates/home.html",
      controller: 'HomeCtrl'
    }
  }
})

但是,在我禁用它之后,没有任何改变,但仍然无效。

PS:屏幕旋转/方向监听器工作,在模拟器和真实设备上,我已经在控制台消息上进行了调试。

什么可能无法在Angular或Ionic上正常工作?或者为什么只在触发后更新View?

1 个答案:

答案 0 :(得分:1)

这是因为你正在更新Angular摘要循环之外的$ scope。

尝试:

$scope.$apply(function() {
    $scope.orientation = $window.orientation;
});