在我的服务中,我使用的是clients
帖子。我想将URL设置为常量。
state_changes
我尝试了一项服务:
http
还有其他方法可以在Angular4中创建一个常量值吗?
答案 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