Angular 角度服务被引用但未被调用,但仍然是;“返回”;正确值
,我对Angular.io教程做了一个小修改 我已向heroes.service添加了一个名为Angular 角度服务被引用但未被调用,但仍然是;“返回”;正确值,angular,this,angular-services,angular-components,Angular,This,Angular Services,Angular Components,,我对Angular.io教程做了一个小修改 我已向heroes.service添加了一个名为doheroESist的函数。 然而,我从来没有这样称呼它。我所做的唯一一件事是将其分配给app.component ngOnInit(): void { //this.getHeroes(); this.heroesExist = this.heroService.doHeroesExist; console.log("app ngOnInit called...", th
doheroESist
的函数。
然而,我从来没有这样称呼它。我所做的唯一一件事是将其分配给app.component
ngOnInit(): void {
//this.getHeroes();
this.heroesExist = this.heroService.doHeroesExist;
console.log("app ngOnInit called...", this.heroesExist); // outputs: app ngOnInit called... true
}
这里是hero.service.ts
文件中的doheroesist
函数
doHeroesExist(): boolean {
console.log("doHeroesExist called..", this.doHeroesExist);
return this.doHeroesExist;
}
我很困惑
为什么控制台日志中会显示true?它不应该将函数体作为字符串输出吗?另外,doheroESist
中的console.log从未打印过-进一步证明它没有被调用 编辑:
您忘记提到您在服务中定义了:
doHeroesExist: boolean;
constructor() {
this.doHeroesExist = true;
}
使用相同名称的成员方法和成员字段不是一个好主意
无论doheroESist
was(函数、其他变量…)的定义是什么,在构造函数中,您只需将true
的值赋给它即可。因此它变成一个布尔值
,值为true
就这样。由于名称冲突,我很惊讶它会编译,但无论如何,这种行为显然是由您的构造函数造成的。感谢您的帮助回答并指出了这些问题。我现在意识到我实际上把问题搞砸了。我做了一些更改,并在此处重新询问: