Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在根组件中声明一个类并在其他组件中使用_Angularjs_Angular - Fatal编程技术网

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。据我所知,没有其他方法。不客气。当它起作用时,别忘了将它标记为答案并向上投票。:)