我正在使用AngularJS处理一个应用程序,现在的问题是,当我点击一个菜单按钮时我需要传递一个URL,这样我就可以在另一个控制器的另一个视图中的iframe中使用该URL。我一直在尝试很多东西并像整个Stackoverflow一样运行,但我找不到解决问题的方法..
我的服务:
module Services {
export class PassUrlService {
getUrl;
setUrl;
givenUrl;
constructor($scope) {
this.getUrl = function() {
return this.givenUrl;
}
this.setUrl = function (value: string) {
this.givenUrl = value;
}
}
}
}
我的控制器:
module Controllers {
export class MainController {
data = [];
sce;
IframeUrl;
constructor($scope, $sce) {
$scope.data = this.data;
$scope.vm = this;
this.sce = $sce;
}
setIframeUrl = function (url) {
this.IframeUrl = Services.PassUrlService.setUrl(this.sce.trustAsResourceUrl(url));
debugger;
}
}
}
我得到的错误是:
错误TS2339:类型'typeof上不存在属性'setUrl' PassUrlService”。
我希望有人能帮助我解决这个问题,提前谢谢!
答案 0 :(得分:2)
我认为您不是在控制器中注入您的服务,请尝试下面的示例
service: Services.PassUrlService
constructor($scope, $sce, service: Services.PassUrlService ) {
$scope.data = this.data;
$scope.vm = this;
this.sce = $sce;
this.service = service
}