从我的控制器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;
});
}
谢谢!