import {Component, OnInit} from '@angular/core';
import {LoginService} from "../../services/login.service";
import {LoginUser} from "../../services/model";
@Component({
selector: 'login-component',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
private user: LoginUser = new LoginUser();
public flag : boolean = false;
constructor(private loginService: LoginService) {}
login(): void {
this.flag = true;
this.loginService.login(this.user).then(function (response) {
console.log(this.flag);
});
}
}
我无法在登录服务调用的响应中访问或为flag变量赋值。但是,我可以在登录方法中访问它,我将其值更新为true。 我在登录服务中也遇到了同样的问题。
答案 0 :(得分:1)
Angular使用Typescript,默认情况下,其中包含大部分ES6功能。如果要将函数作为回调参数传递,请不要使用function(){}
。
使用fat arrow notation为您提供词汇this
:
login(): void {
this.flag = true;
this.loginService.login(this.user).then((response) => {
console.log(this.flag);
});
}
答案 1 :(得分:0)
绑定(这个)可能会帮助你解决问题。
if foo {
cell.textLabel.text = "isFoo"
} else {
cell.textLabel.text = "isNotFoo"
}