Angularjs 在根组件中声明一个类并在其他组件中使用
我创建了这个全局配置类,代码如下:Angularjs 在根组件中声明一个类并在其他组件中使用,angularjs,angular,Angularjs,Angular,我创建了这个全局配置类,代码如下: import { Injectable } from '@angular/core'; @Injectable() export class ConfigEnvironment { private development: String; private production: String; private ENV: String; private version: String; constructor()
import { Injectable } from '@angular/core';
@Injectable()
export class ConfigEnvironment {
private development: String;
private production: String;
private ENV: String;
private version: String;
constructor(){
this.development = "development";
this.production = "production";
this.ENV = this.development;
this.version = "v1"
}
url(){
var environment: any = this.ENV;
var endPoint = {
development: "http://localhost/meetup-api/"+this.version+"/",
production: "https://localhost.production/meetup-api/"+this.version+"/"
};
return endPoint[environment];
}
}
在提供程序内的app.module.ts中声明类,如下所示:
providers: [ConfigEnvironment],
但当我使用以下代码访问某个组件中的ConfigEnvironment类时:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
constructor(private router: Router) { }
login () {
console.log(ConfigEnvironment.url())
this.router.navigate(['/']);
}
ngOnInit() {
}
}
它给我一个错误“找不到名称'ConfigEnvironment'
我的代码中出现了什么问题?您必须在使用它的类中导入ConfigEnvironment。否则,您将得到一个typescript编译错误。您需要将它注入到组件中
constructor(private router: Router, private configEnvironment : ConfigEnvironment ) { }
也别忘了导入它
import { ConfigEnvironment } from 'path/to/service';
您应该显示使用ConfigEnvironmentServiceService的类我的目标是只声明一次,以便我的所有组件都可以使用class@sefa回答正确。这是一种方法。有一种方法可以导入它一次,以便我的所有组件都可以使用该类吗?您已经将其声明为全局服务,但您必须每次你想用它的时候都要用ect。据我所知,没有其他方法。不客气。当它起作用时,别忘了将它标记为答案并向上投票。:)