是否有任何内置服务/指令/路由来根据用户访问的浏览器/平台的类型更改视图(或使用路由的页面)?我希望手机和平板电脑拥有与桌面用户不同的视图。
问问题
12528 次
2 回答
7
我不知道 Angular 有什么内置的东西,但你可以通过在路由规则中插入逻辑来做到这一点。例如:
angular.module('browser-routing', []).
config(function($routeProvider) {
$routeProvider.
when('/', {templateUrl: getBrowser() + '.html'})
});
在此示例中,如果 getBrowser() 返回'iphone'
,它将呈现视图iphone.html
您可以使用 BrowserDetect来做顾名思义。
于 2012-08-28T05:23:19.673 回答
2
尽管 AngularJS 没有任何开箱即用的特定功能,但有许多不同的方法可以完成类似的事情:
- 使用CSS3 媒体查询进行响应式设计。根据您的需要,这可能是您最好的选择,因为您可以避免为多个视口重新实现功能。
您可以编写一个服务来检查并更改路线:
myApp.factory('checkWidth', function ($location, $window) { return function () { if ($window.document.width < 700) { $location.url('/mobile'); } } });
于 2012-08-28T16:59:45.817 回答