2017-07-10 192 views
-1

我有一个旧系统,例如用户可以在某个链接上点击右键新表格,在新标签页中系统将在同一页面打开,但现在我构建了一个新系统SPA与angularjs和我的用户需要相同的funcionality,但总是打开新的选项卡系统在主页面打开,当然是一个SPA和系统不是sabe上下文。 我认为我需要创建一个存储来创建这个,但会是一个好的做法?在新标签上打开SPA页面

+0

https://stackoverflow.com/questions/23516289/angularjs-state-open-link-in-new-tab – Shantanu

+0

在您的例子是在常开一个新的选项卡,但在我的情况下,我只需要当用户单击鼠标右键时。 –

回答

1

如果您希望它只在右键单击时运行,那么在ng-mousedown上使用下面的函数并将$ event传递给它。检查右键单击事件&然后在新选项卡中打开状态。

$scope.openInNewTab = function(e){ 
    //console.log(e.button); 
    if(e.button === 2) { 
     var url = $state.href('PageTab.Page2', {}); 
     window.open(url,'_blank'); 
    } 
} 
<p ng-mousedown="openInNewTab($event)">Open page 2 in new tab</p> 

这里的工作plunker链接:https://plnkr.co/edit/mo96eXMLKfHkUWPKPG2m?p=preview

+0

听起来不错! 但在这个例子中,我使用了URL中的页面,在我的情况下,我使用hide,我只显示了域中所有运行在“/”下的页面,并且这个例子不起作用 –

+0

在应用程序中如何使用路由? (您是使用$ routeProvider还是$ stateProvider来定义路由?或者您尚未实现路由?) – Shantanu

+0

$ stateProvider .state('fornecimento/info',{ url:'/', templateUrl:'views/fornecimento /info.html', params:{ IDF:null, Contrato:null } }) –

相关问题