angular - Funktionsimplementeringen saknas eller följer inte omedelbart efter deklarationen, TypeScript-klass
Jag fick en handskriven array för att fylla ett bord i min klass, nu hämtar jag innehållet i denna array från en JSON på ngOnInit men det är inte strukturerat som jag behöver.
Så jag försöker skriva en funktion för att fylla table-arrayen med den nya jag får på ngOnInit.
Problemet är att när jag skriver kod utanför en funktion i min TS-klass får jag detta felmeddelande: "Funktionsimplementering saknas eller följer inte omedelbart efter deklarationen".
Varför är det så och vad kan göras för att åtgärda detta?
TS
export class MyComponent implements OnInit {
users: Object;
constructor(private tstService: MyComponentService) { this.source = new LocalDataSource(this.data) }
ngOnInit(): void {
this.tstService.getTstWithObservable()
.map(result => result.map(i => i.user.data))
.subscribe(
res => { this.users = res; }
);
}
console.log(this.users); // Here, just an example. Throws 'Function implementation is missing or not immediately following the declaration'
data = [
{
title: 'Monthly',
sdate: '01/04/1990',
edate: '30/09/1990',
},
];
source: LocalDataSource;
}
Svar #1
Problemet här är att du har viss "kodexekvering" (console.log(this.users);) utanför ett "exekverbart område" (till exempel "området" inne i ngOnInit).
Om du behöver göra console.log(this.users); för att se datan i devtools, bör du flytta console.log-delen inuti ngOnInit som är en körbar del av din klass MyComponent eller kanske inuti constructor.
Jag skulle rekommendera dig att göra det så här:
ngOnInit(): void {
this.tstService.getTstWithObservable()
.map(result => result.map(i => i.user.data))
.subscribe(
res => {
this.users = res;
console.log(this.users); // <-- moved here!
}
);
}
Saken är den att koden du försöker köra behöver vara inuti en metod som Angular kör.
Se den här demonstrationen med några exempel. Den relevanta koden finns nedan:
export class AppComponent implements OnInit{
name = 'Angular 6';
constructor() {
console.log(name); // OK
}
ngOnInit() {
console.log('sample not giving error'); // OK
}
// comment line below and the error will go away
console.log(name); // this will throw: Function implementation is missing or not immediately following the declaration
}
