根据屏幕大小更改视图

Koc*_*r4d 7 angularjs

我知道之前有过类似的问题:

根据屏幕分辨率AngularJS更改指令的templateUrl

这是一年前首次提出的问题,从那以后AngularJS发生了一些变化.我很想知道是否有其他方法可以实现类似的东西,因为我没有找到关于templateUrl交换的许多信息,所以也许我在这里咆哮错误的树.

我有一个没有任何路线的单页应用程序.

HTML:

<body ng-app="App">
  // lots of html same for both desktop/mobile
  <my-dir></my-dir>
  // even more here
</body>
Run Code Online (Sandbox Code Playgroud)

模板1:

<p>Mobile</p>
Run Code Online (Sandbox Code Playgroud)

模板2:

<p>Desktop</p>
Run Code Online (Sandbox Code Playgroud)

我想在屏幕低于700px时渲染模板1,否则渲染模板2.模板改变了my-dir指令中的内容.例如,模板1呈现列表和模板2呈现表.

另一个要求是尽可能使其响应(在调整窗口大小时,模板会发生变化)

目前我可以使用上述问题的解决方案,但有没有其他方法可以做到这一点?

Jah*_*nov 9

在你的控制器中:

$scope.includeDesktopTemplate = false;
$scope.includeMobileTemplate = false; 
var screenWidth = $window.innerWidth;

if (screenWidth < 700){
    $scope.includeMobileTemplate = true;
}else{
    $scope.includeDesktopTemplate = true;
}
Run Code Online (Sandbox Code Playgroud)

html模板:

<body ng-app="App">
    <p ng-if="includeMobileTemplate">Mobile</p>
    <p ng-if="includeDesktopTemplate">Desktop</p>
</body>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你