如何在打字稿中使用此关键字

时间:2017-10-09 13:10:33

标签: angular typescript

我是打字稿的新手,请帮助我如何在验证功能中获取登录服务。我已经使用此关键字来获取loginservice但它无法正常工作。而且我也对打字稿中的这个关键字感到困惑。

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);

        }
      }
    }

5 个答案:

答案 0 :(得分:2)

没有太大区别。

let resultset = loginservice...

应该是

let resultset = this.loginservice.

答案 1 :(得分:1)

只需使用this.关键字来引用类的属性。构造函数中的参数也会自动成为类的属性。就像之前的回答所说的那样,你只需做this.loginservice

答案 2 :(得分:1)

您的代码有几个基本问​​题。试试这个更新的代码:

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);

  }
}

答案 3 :(得分:0)

实际上这是指当前的上下文,在你的代码中,你已经在构造函数中导入了登录服务,所以它应该被用作,

authenticate() {
   console.log("service called");
  let resultset = this.loginservice.authenticateUser(this.formData);
}

答案 4 :(得分:0)

在下面的场景中,this关键字引用LoginComponent(TypeScript文件)中的属性,例如loginService。

export class LoginComponent implements OnInit {
  ... 

  constructor(private loginService: LoginService) { }

  ngOnInit() { }

  ...

  public authenticate(): void {
    let resultset = this.loginService.authenticateUser(this.formData);
    ...
  }
}