2016-02-23 4 views
0

В веб-приложении после входа в систему пользователь видит страницу, на которой есть кнопка для открытия всплывающего окна css. Он работает, но когда я помещаю проект в phonegap, и я использую ngRoute, всплывающее окно не работает, потому что оно всегда возвращается на страницу входа.Popup не работает с 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' }); 
}]) 

На самом деле, когда я пытаюсь открыть всплывающее окно, я возвращаюсь на страницу входа.

ответ

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

Отправит вас, например. локальный: 9000/# всплывающее окно. Этот маршрут не делится в вашем маршрутеProvider, поэтому он перейдет к логину. Чтобы перейти на ваш сайт, сделайте это так:

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

Наконец-то у меня было решение .... Я сошел с ума! Большое спасибо! – panagulis72

Смежные вопросы