我有一个LoginData
对象的数组,其中一个属性是email。以下函数采用字符串参数,并应检查是否已经存在具有匹配电子邮件地址的LoginData
对象。这是代码:
import { Injectable } from '@angular/core';
import { LOGINDATA } from '../mock-users';
@Injectable({
providedIn: 'root'
})
export class CheckLoginDataService {
emailString: string = "";
loginData = LOGINDATA;
checkLoginData(str: string){
let emailExists: boolean = false;
this.loginData.forEach( function(LoginData){
this.emailString = LoginData.email;
console.log(this.emailString);
if (str === this.emailString){
emailExists = true;
}
})
return emailExists;
}
}
运行代码时出现错误:
“错误TypeError:无法设置未定义的属性'emailString'”。
我查看了讨论此问题的其他stackoverflow线程,他们建议初始化"emailString"
(在我的情况下)。我想我已经在一开始就这样做了-我在做什么错了?
答案 0 :(得分:0)
更改
this.loginData.forEach( function(LoginData){
到
this.loginData.forEach((LoginData) => {
在类中使用箭头函数会将函数内的this
绑定到类实例本身。