弹出窗口不适用于ngRoute

时间:2016-02-23 17:53:28

标签: angularjs cordova phonegap-plugins ngroute

在Web应用程序中,登录后,用户会看到一个页面,其中有一个用于打开css弹出窗口的按钮。它有效,但是当我把项目放在phonegap中并使用ngRoute时,弹出窗口不起作用,因为它总是在登录页面返回。

用户第一次登录时,除了打开弹出窗口的按钮外,他将被发现全部被禁用。当他关闭弹出窗口时,他可以继续浏览。为此,我保存在cookie弹出状态。

这是主页中的弹出窗口:

<div class="icon-wrapper"> 
    <a href="#popup" ng-click="open();"><img  ng-src="img.png" /></a> 
</div> 
<!-- Popup -->
<div class="overlay" id="popup" ng-class="$storage.hide">
    <p>Test</p>
<button ng-click="close();">Close popup</button>

主页的角度代码:

var app = angular.module('Home', ['ngStorage']);

app.controller('HomeController', function($scope, $http, $localStorage){ 

$scope.hide = "hide";      

$scope.$storage = $localStorage.$default({ 
    hide: $scope.hide   
});


$scope.close = function () {
  window.location = '#';  
};

$scope.open = function () {
  $scope.$storage.hide = "show";  
};

}); // End controller

CSS

.hide { display: none;}
.show { display: block; }

索引页面的JS文件(其中有ng-view):

angular.module('Authentication', []);
angular.module('Home', []);

angular.module('BasicHttpAuthExample', [
'Authentication',
'Home',
'ngRoute',
'ngCookies',
'ngStorage'
])

.config(['$routeProvider', function ($routeProvider) {

$routeProvider
    .when('/login', {
        controller: 'LoginController',
        templateUrl: 'js/modules/authentication/views/login.html',
        hideMenus: true
    })

    .when('/', {
        controller: 'HomeController',
        templateUrl: 'js/modules/home/views/home.html'
    })

    .otherwise({ redirectTo: '/login' });
}])

实际上,当我尝试打开弹出窗口时,我会在登录页面中返回。

1 个答案:

答案 0 :(得分:0)

<a href="#popup" ng-click="open();"><img  ng-src="img.png" /></a> 

会引导您前往,例如本地主机:9000 /#弹出。 此路由未在您的routeProvider中进行delcared,因此他将跳转到登录。 要跳转到您的主页,请执行以下操作:

<a href="#/" ng-click="open();"><img  ng-src="img.png" /></a>