Angularjs。在新标签页中打开内容

Angularjs. Open content in new tab

我在 SO 上阅读过类似的 questions/answers,但无法解决我的问题。 这是设置: index.html

<li ng-repeat="a in article">
   <a ng-click="articleDetails(a.id)">
     {{a.title_en}}
   </a>
</li>

js文件

angular.module('myApp.article', ['ngRoute'])
    .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
        $routeProvider.when('/article/:id', {
            templateUrl: 'article/article.html',
            controller: 'ArticleDetailCtrl'
        });
        //$locationProvider.html5Mode(true);
    }])        
    .controller('ArticleDetailCtrl', ['$http', '$routeParams', '$scope', '$window', '$location',
        function ($http, $routeParams, $scope, $window, $location) {
           $scope.params = 'blabla';
        }])

article.html

<div>{{params}}</div>

问题: 当我单击 index.html 中的 link 时,新选项卡按预期打开并显示正确的 url,但是,而不是文章详细信息我在网页上得到 未找到。可能是什么问题?

编辑 1:函数文章详细信息在 index.html 中使用的另一个控制器中定义如下:

$scope.articleDetails = function (id) {
                $scope.id = id;
                $scope.window = $window.open('article/' + id, '_blank');
            }

您不能在另一个 window 中保留您的 Angular 应用程序的范围。因此调用 $window.open 将打开一个新的 window,它没有您原来的 $scope

范围仅绑定到初始化 ngApp 的 window。

为了克服这个问题,您可以使用浏览器的LocalStorage

编辑: 请参考 this