Mám nasledujúcu triedu:
export class Constants {
public static cREQUESTED_SERVICE: string = "RequestedService";
}
a mám nasledujúcu šablónu (Service.component.html) komponenty (Service.component.ts):
<label>{{Constants.cREQUESTED_SERVICE}}</label>
Vo vnútri som už importoval (konštanty) triedu (Service.component.html). Problém je: Štítok sa zobrazuje prázdny a v konzole sa zaznamená táto chyba:
Subscriber.js: 240 Uncaught TypeError: Nedá sa načítať vlastnosť „cREQUESTED_SERVICE“ nedefinovaného
odpovede:
3 pre odpoveď č. 1na serveri Service.component.ts vytvorte inú metódu získavania, ako je táto
import { Constants } from "your/path/to/this/file/Constants";
export class ServiceComponent {
get ConstantsClass() {
return Constants;
}
}
v šablóne
<label>{{ConstantsClass.cREQUESTED_SERVICE}}</label>
3 pre odpoveď č. 2
Kedykoľvek používate konštanty, mali by ste ich používať ako injekčné (), pretože zostávajú rovnaké počas celého životného cyklu aplikácie (singleton) rovnako ako ktorýkoľvek iný poskytovateľ.
@Injectable()
export class Constants {
public readonly cREQUESTED_SERVICE: string = "RequestedService";
}
Vo vašom komponente by ste mali vstreknúť do konštruktora a použiť
constructor(private cons : Constants){}
this.cons.cREQUESTED_SERVICE