8

ユーザーがアクセスしているブラウザー/プラットフォームのタイプに基づいてビュー(またはルーティングを使用してページ)を変更するための組み込みのサービス/ディレクティブ/ルートはありますか?携帯電話やタブレットのビューをデスクトップユーザーとは異なるものにしたいと思います。

4

2 に答える 2

7

Angular に組み込まれている機能については知りませんが、ルーティング ルールにロジックを挿入することで実現できます。例えば:

angular.module('browser-routing', []).
  config(function($routeProvider) {
    $routeProvider.
      when('/', {templateUrl: getBrowser() + '.html'})
});

この例では、 getBrowser() が返さ'iphone'れると、ビューがレンダリングされますiphone.html

BrowserDetectを使用 して、名前が意味することを行うことができます。

Chrome および Firefox 検出のフィドルの例

于 2012-08-28T05:23:19.673 に答える
2

AngularJS にはすぐに使用できる特定の機能はありませんが、そのようなことを達成するためのさまざまなアプローチがあります。

  1. CSS3 メディア クエリを使用してレスポンシブ デザインを作成する。ニーズによっては、複数のビューポートの機能を再実装する必要がなくなるため、これが最善の策かもしれません。
  2. ルート変更を確認して行うサービスを作成できます。

    myApp.factory('checkWidth', function ($location, $window) {
      return function () {
        if ($window.document.width < 700) {
          $location.url('/mobile');
        }
      }
    });
    
于 2012-08-28T16:59:45.817 に答える