angular - Använda miljövariabler i mallfiler
Är det möjligt att använda miljövariabler i mallfiler?
Jag försöker för närvarande den här syntaxen:
<img class="preview-image" src="{{environment.assets + item.image}}" />
vilket resulterar i följande fel:
Identifier 'environment' är inte definierad. Komponentdeklarationen, mallvariabeldeklarationer och elementreferenser innehåller inte en sådan medlem
Jag har försökt importera det i min component.ts-fil, import { environment } from './../../../../environments/environment'; men det förändrade ingenting.
Svar #1
Definiera bara den publika environment-variabeln i kontrollern med värdet, sedan kan du komma åt den i mallen:
import { environment } from '../environments/environment';
export class AppComponent {
environment = environment;
}
Svar #2
Lösning utan att ändra varje .ts-komponent
Jag gillade verkligen inte idén om att ändra varje .ts-komponentfil, så jag föreslår att använda en pipe som kan användas överallt i ditt projekt:
import {Pipe, PipeTransform} from '@angular/core';
import {environment} from '../environments/environment';
@Pipe({name: 'env'})
export class EnvPipe implements PipeTransform {
transform(variable: keyof typeof environment): any {
return environment[variable];
}
}
Sedan, i din HTML, använd bara:
<span>{{'variableName' | env}}</span>
I ditt fall:
<img class="preview-image" src="{{'assets' | env}}{{item.image}}" />
