Angular 如何在typescript中使用此关键字
我是typescript新手,请帮助我如何在authenticate函数中获得loginservice。我已经使用这个关键字来获取loginservice,但它不起作用。而且我对typescript中的这个关键字感到困惑Angular 如何在typescript中使用此关键字,angular,typescript,Angular,Typescript,我是typescript新手,请帮助我如何在authenticate函数中获得loginservice。我已经使用这个关键字来获取loginservice,但它不起作用。而且我对typescript中的这个关键字感到困惑 import { Constants } from '../../core/constants'; import { loginService } from './login.service'; import { Component, OnInit } from
import { Constants } from '../../core/constants';
import { loginService } from './login.service';
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private loginservice: loginService) { }
ngOnInit() {
}
login = {
formData: {
username: '',
password: '',
},
resources:{
login_logo: Constants.LOGO_LOGIN,
},
authenticate() {
console.log("service called");
let resultset = loginservice.authenticateUser(this.formData);
}
}
}
差别不大
let resultset = loginservice...
应该是
let resultset = this.loginservice.
只需使用
this.
关键字引用类上的属性即可。构造函数中的参数也会自动成为类的属性。正如前面的回答所说,您只需执行此操作。loginservice
实际上,这指的是当前上下文,在您的代码中,您已经在构造函数中导入了登录服务,因此它应该作为
authenticate() {
console.log("service called");
let resultset = this.loginservice.authenticateUser(this.formData);
}
在下面的场景中,
this
关键字引用LoginComponent(TypeScript文件)中的属性,例如loginService
export class LoginComponent implements OnInit {
...
constructor(private loginService: LoginService) { }
ngOnInit() { }
...
public authenticate(): void {
let resultset = this.loginService.authenticateUser(this.formData);
...
}
}
您的代码有几个基本问题。尝试此更新代码:
import { Constants } from '../../core/constants';
import { loginService } from './login.service';
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private loginservice: loginService, private CONSTANTS : Constants) { }
ngOnInit() {
}
formData: any ={
username: '',
password: '',
};
resources: any = {
login_logo: this.CONSTANTS.LOGO_LOGIN,
};
authenticate() {
console.log("service called");
let resultset = this.loginservice.authenticateUser(this.formData);
}
}
你的问题实际上是两个问题,后者太宽泛了,无法用这种形式回答。话虽如此,知道
loginservice
已设置为this
可能会对您有所帮助,因为您在构造函数调用中使用了private
关键字。请注意,构造函数的参数只会自动变为属性,因为OP使用了private
关键字。如果没有private
,每个参数都必须在构造函数调用中设置为this
。我也不知道,直到我忘记添加private
,我无法理解为什么什么都不起作用。将所有内容分组到单个对象(登录)是错误的吗?我做错了吗?是的,你不能这样分组,尤其是你不能这样做