如何使用angularjs在新窗口中打开我的页面?

时间:2016-03-04 22:54:39

标签: javascript jquery html angularjs

从我的控制器A,我正在做以下事情 -

  $window.open("/signals", "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes");
//$location,path("/signals");

我的routeprovider配置如下 -

.when('/signals',{
                templateUrl: 'app/views/signals.html',
                controller: 'signalsCtrl',
                controllerAs : 'signals'
            })

我的signalsCtrl控制器正在使用一个服务,该服务返回必须在新窗口中显示的图像列表 - signals.html:

angular.module('myApp').controller('signalsCtrl',
    ['$scope', '$log', 'criteriaService',
        function ($scope, $log, criteriaService) {
            var signals=this;
            signals.getUrls = function(){
                return criteriaService.getUrls()
            };
        }]);
signals.html使用ng-repeat循环遍历列表并显示图像。

问题在于,当我使用$ location.path(“/ signals”)时,当我单击父页面上的按钮时,它会在同一窗口(重定向)中打开新页面时工作正常。但是使用$ window.open它根本不起作用。当我尝试使用$ window.open(“/ signals”)尝试访问此页面时,我看不到我的控制器(SignalsCtrl)被触发。

我怎样才能让它发挥作用?

我还考虑过使用模态,但是当用户可以在父页面上工作时,我需要让模态始终保持打开状态。然而,模态不允许这样做。所以我试图在新窗口中创建一个新页面,但这也不起作用。

这里的任何指示都会非常感激。

我发现当页面加载时我们正在重置会话。由于窗口打开一个新页面,会话正在重置,因为它会返回到主页面,以便用户可以再次选择条件。

 this.login = function (credentials) {alert("called login from loginController");
        AuthService.login(credentials).then(function(principal){
            selectionCriteria.clear();
            sessionService.reset();
            $location.path('/');
        }, function(){
            login.error = true;
        });
    }

谢谢!

0 个答案:

没有答案
相关问题