2012-08-27 7 views
8

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

答えて

7

Angularに組み込まれているものはわかりませんが、ルーティングルールにロジックを挿入することでこれを行うことができます。たとえば、次のように

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

この例では、getBrowserは()'iphone'それはあなたはその名が示す何をする BrowserDetectを使用することができますビューiphone.html

をレンダリングします返す場合。

fiddle example for Chrome and Firefox detection

2

AngularJSは、アウト・オブ・ボックスにそれを行うための任意の特定の機能を持っていませんが、そのようなこと達成するには多くの異なるアプローチがあります:CSS3 media queries to make a responsive designを使用して

  1. が。必要に応じて、複数のビューポートの機能を再実装することを避けることができます。

    myApp.factory('checkWidth', function ($location, $window) { 
        return function() { 
        if ($window.document.width < 700) { 
         $location.url('/mobile'); 
        } 
        } 
    }); 
    
  • あなたはチェックして、ルート変更を行うためにサービスを書くことができます

  • 関連する問題