【发布时间】:2019-09-05 14:42:13
【问题描述】:
我有控制器 'reportCtrl' 和 HTML,它代表 6 个带有数据的表格,我一次只显示几行。
app.js
var appReport = angular.module('myAppReport', []);
appReport.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/showreport', {templateUrl: 'app/reports/reportsView.html', controller: 'reportCtrl'});
$routeProvider.when('/showreport/:type', {templateUrl: 'app/reports/reportsView.html', controller: 'reportCtrl'});
每个表格都有一个按钮,点击后应在浏览器中打开带有扩展表格的新标签:
scope.onClick = function(path){
var real_path = $location.path() + '/' + path + '/';
$location.path( real_path );
// $window.open($location.path()); // doesn't work
};
例如我有根视图 URL:
http://dev.test.com/reports/date/#/showreport
现在,按下按钮后我想创建:
http://dev.test.com/reports/date/#/showreport/table_name
并在新标签中打开它。如您所见,我尝试了$window.open($location.path());,但它不起作用,没有任何反应。
谢谢,
【问题讨论】:
-
你混淆了角度路径,它位于 url 中的哈希之后,带有完整的 url
-
@charlietfl 你能解释一下吗?我写错了吗?谢谢
-
$window.open应该可以工作。您是否正确注入了$window服务?您也可以尝试这样称呼它:$window.open(real_path,'_blank');。请提供更多信息/代码或 plunk,以便我们更好地了解问题。 -
window和$window差别不大。如果你不能使用$window,你可以试试var win=window.open(real_path , '_blank');
标签: angularjs