在我的应用程序中,我使用ngRoute加载视图,
.state('ReportViewer', {
url: "/ReportViewer",
controller: 'ReportViewerControl',
templateUrl: "views/Report_viewer.html"
})
我有一个搜索面板,用户可以在其中搜索报告,在选择报告时,它应该路由到另一个页面并在iframe中加载报告。当用户选择报告时,这是我的代码,
$scope.goReport = function(report){
$state.go('ReportViewer');
}
我在配置中定义了一个常量,它根据报告选择动态变化
.constant('Digin_ReportViewer','http://192.226.192.147:8080/api/repos/%3Ahome%3Aadmin%')
在这里,我需要通过报告'当用户选择报告时,变量为ReportViewerControl
这是我的ReportViewerControl
routerApp.controller('ReportViewerControl', ['$scope', '$routeParams','Digin_ReportViewer',function($scope, $routeParams,Digin_ReportViewer) {
//here i need to append the report url ,
$scope.reportURL = Digin_ReportViewer+routeParams.report ;
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}
}
]);
答案 0 :(得分:2)
你正在使用ui-router来配置路由,但是在ReportController中你正在使用$ routeParams.I希望你必须使用$ stateParams。
routerApp.controller('ReportViewerControl', ['$scope', '$stateParams','Digin_ReportViewer',function($scope, $stateParams,Digin_ReportViewer) {
//here i need to append the report url ,
$scope.reportURL = Digin_ReportViewer+stateParams.report ;
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}
}
]);
你也必须从url或像这样的方法传递params
.state('ReportViewer', {
url: "/ReportViewer",
controller: 'ReportViewerControl',
templateUrl: "views/Report_viewer.html",
params: ['report']
})
然后您可以像这样导航到它:
$scope.goReport = function(report){
$state.go('ReportViewer', { 'report':'monthly' });
}
或者:
var result = { 'report':'monthly' };
$state.go('ReportViewer', result);