如何从Mobile访问应用程序

时间:2014-10-13 14:17:26

标签: angularjs angular-ui-router

我正在使用Yeoman + AngularJS + Ui路由器。当我使用ng-router时,可能打开移动浏览器(local-ip):9000并使用app,但是使用Ui Router我不能这样做。我应该设置什么吗?

例如:在计算机中运行grunt服务器。在移动设备上打开我的浏览器并访问我的本地IP:端口。

代码:

app.js

.config(['$locationProvider', '$urlRouterProvider', '$httpProvider',
    function($locationProvider, $urlRouterProvider, $httpProvider) {
        $locationProvider.html5Mode(true).hashPrefix('!');

        $urlRouterProvider.otherwise('/404');

        $httpProvider.interceptors.push('AuthInterceptorService');
    }
.run(['$rootScope', 'AuthenticationService', '$state',
    function($rootScope, AuthenticationService, $state) {
        var routesThatRequireAuth = ['/dashboard'];

        $rootScope.$on('$stateChangeStart',
            function(event, toState) {
                if (_.contains(routesThatRequireAuth, toState.url) && !AuthenticationService.isLoggedIn()) {
                    event.preventDefault();
                    $state.transitionTo('login');
                } else if (toState.url === '/' && AuthenticationService.isLoggedIn()) {
                    event.preventDefault();
                    $state.transitionTo('dashboard');
                }
            });
    }
]);

login.js

'use strict';

angular.module('App').config(['$stateProvider',
    function($stateProvider) {
        $stateProvider
            .state('login', {
                url: '/',
                views: {
                    '': {
                        templateUrl: 'views/login/login.html',
                        controller: 'LoginCtrl'                        
                    },
                    'header@login': {
                        templateUrl: 'views/layouts/anonymous/header.html'
                    },
                    'body@login': {
                        templateUrl: 'views/login/body.html'
                    }
                }
            });
    }
]);

2 个答案:

答案 0 :(得分:2)

如果您需要在移动设备上调试Angular应用程序,可以查看此内容 https://developer.chrome.com/devtools/docs/remote-debugging

答案 1 :(得分:0)

您的问题是:如何从我的移动设备连接到我的Angular / Node测试服务器。

首先,您要测试的服务器和其他测试设备需要连接到同一网络。这意味着,如果您尝试使用3G手机进行测试,则无法使用。

通常,您只需通过WiFi连接到PC所连接的同一路由器。

然后你需要弄清楚你的服务器正在使用什么IP。每当您在本地测试时,您的地址栏显示“localhost”或“127.0.0.1”,这两个地址被称为环回地址,如果您将该地址放入移动设备,它们将无法工作。

要获取实际IP地址,如果您在Windows上打开命令行并从正在开发的计算机中键入 ipconfig ,您将看到您的IP地址。

现在有了这些信息,您可以通过运行服务器并在移动设备中打开浏览器进行测试。在地址栏中输入http://192.168.1.5:9000(用您的实际IP地址替换192.168.1.5),然后按go。

您现在应该可以通过手机查看自己的网站了。请记住,很多事情都可能出错。您可以启用防火墙,路由器可能会使用NAT阻止您的服务器,或者您的IP可以动态更改。

专业提示:了解如何获取静态IP并使用域名或DynDNS服务(如https://zzzz.io/)进行更快捷/更轻松的测试。