如何在角4中使弦不变?

时间:2017-05-11 13:11:19

标签: angular

在我的服务中,我使用的是clients帖子。我想将URL设置为常量。

state_changes

我尝试了一项服务:

http

还有其他方法可以在Angular4中创建一个常量值吗?

2 个答案:

答案 0 :(得分:34)

我不确定我是否理解你的问题但是如果你想创建常量,你可以在另一个类中进行并导入它。

constants.ts

export class Constants {
  public static get HOME_URL(): string { return "sample/url/"; };
}

sample.component.ts

   import { Constants } from "./constants";
    @Component({

    })
     export class SampleComponent {
      constructor() {
       let url = Constants.HOME_URL;
      }
    }

答案 1 :(得分:2)

将应用程序常量定义为公共静态只读,如下所示:

  

公共静态只读constName ='常量值'

/app-constants.ts

export class Constants {

     public static readonly routeAuthRegister = '/auth/register';
     public static readonly routeAuthLogin = '/auth/login';
     public static readonly routeAuthRecovery = '/auth/forgot-password';

}

/api-constants.ts

  

最好将基本URI保留在环境文件中。并在.angular-cli.json中的应用中定义您的环境。我在这里附上下面的屏幕快照,用于定义自定义应用程序环境。

import { environment } from '../../environments/environment';

export class ApiURIs {

    public static readonly apiURL: string = environment.apiEndpoint;
    public static readonly apiV1: string = environment.apiEndpoint + '/v1';
    public static readonly apiV2: string = environment.apiEndpoint + '/v2';


    public static readonly login: string = ApiEndpoints.apiV1 + '/login';
    public static readonly register: string = ApiEndpoints.apiV1 + '/register';
    public static readonly signup: string = ApiEndpoints.apiV2 + '/register';

}

常量的使用

/core/auth.service.ts

import { ApiURIs } from './api-constants';

@Injectable()
export class AuthService {
    .....

    signUpUser(data) {
        return this.https.post(`${ApiURIs.signup}`, data);
    }

    .....
}

/auth/login.component.ts

export class LoginComponent implements OnInit {
   .....

   navigateToForgotPassowrd() {

        this.router.navigate([Constants.routeAuthRecovery]);
   }
   ......
}

为不同的环境定义不同的API URI

environments file & .angular-cli.json