我正在尋找一種方法來使用ngRouting在新窗口中打開模板。我在我的索引頁中設置了一個ng-view div,允許我在中心頁面中填充數據,但是如果用戶選擇在新窗口/選項卡中打開鏈接,頁面會返回404,因爲它是期望有ngRoute加載它的控制器和模板。有什麼方法可以讓Angular處理這個選項嗎?Angular和ngRoute;在新窗口中打開
下面是我的索引頁
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script>
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular-route.min.js"></script>
<body ng-controller="routeController" ng-init="init()">
<div id="wrapper" class="page">
<ul id='settingsLink' class='settingsLink' ng-mouseleave="hideSettingsLink()">
<li><a href="index.html#!/login">Login</a></li>
<li><a href="index.html#!/page2">Page 2</a></li>
<li><a href="index.html#!/page3">Page 3</a></li>
</ul>
<div id="viewcontent">
<div ng-view></div>
</div>
</div>
</body>
這裏是我的routeController配置代碼:
angular.module('myApp').config(function($routeProvider, $locationProvider, $sceDelegateProvider){
$routeProvider
// route for the Login page
.when('/login', {
templateUrl : 'pages/login.html',
controller : 'AuthenticateController'
})
// route for page 2
.when('/page2', {
templateUrl : 'pages/page2.html',
controller : 'Page2Ctrl'
})
// route for page 3
.when('/page3', {
templateUrl : 'pages/page3.html',
controller : 'Page3Ctrl'
});
$locationProvider
.html5Mode(false)
.hashPrefix('!');
});
比方說,我想開第3頁。如果我點擊右鍵並嘗試打開一個新標籤頁,我的頁面會解析回「index.html#!/ login」,而不是「index.html#!/ page3」。
請添加你已經嘗試的代碼。這個問題太廣泛了。 FYI,Angular需要加載並在新窗口中運行。 – pherris