(XXX)不是一个功能angular 2 asp.net核心

时间:2016-12-28 04:31:45

标签: jquery asp.net angular asp.net-core

因为 this.loginservicemodel.loginHttpCall不是一个函数,我得到了一个eroor。我将角度2结构划分为三个部分 - 1)组件2)视图模型和3)服务。

组件将与ViewModels和服务进行通信。服务可以访问viewModel。

我在服务文件中返回一个函数,如下所示

loginservice.ts

import { Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { LoginViewModel } from "../ViewModel/Login.ViewModel";
@Injectable()
export class LoginService {
    private heroesUrl = 'app/heroes';  // URL to web API
    private loginModel = LoginViewModel;
    constructor(private http: Http) { }

    public loginHttpCall() {
        console.log(this.loginModel);
        let headers = new Headers({ 'Content-Type': 'application/json' });
        this.http.post('/contact/send', JSON.stringify(this.loginModel), { headers: headers })
            .subscribe();
}

}

Login.ViewModel.ts

export class LoginViewModel {
    userName: string;
    password: string;
}

login.Components.ts

import { Component} from '@angular/core';
import { LoginViewModel } from "../ViewModel/Login.ViewModel";
import { LoginService} from "../Service/Login.Service";
@Component({
    selector: 'login-app',
    templateUrl: 'Home/partialLogin',
    providers: [LoginViewModel, LoginService]
})

export class LoginComponent {
    private model = LoginViewModel;
    private loginservicemodel: LoginService;

    constructor() {
        this.model.userName = 'erere@ada.comasdasd';
        this.model.password = "test anand";

    }

    login(event) {
        this.loginservicemodel.loginHttpCall();
        event.preventDefault();

    }

}

点击按钮时调用了登录(事件)功能。

该方法调用this.loginservicemodel.loginHttpCall();函数,但我收到错误

  

TypeError:无法读取未定义

的属性'loginHttpCall'

Module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { Http } from '@angular/http';
import { LoginComponent } from "./Components/login.Component";


@NgModule({
    imports: [BrowserModule, FormsModule],
    declarations: [LoginComponent],
    bootstrap: [LoginComponent]
})
export class AppModule { }

我知道它没有得到方法,但我在哪里犯了我不知道的错误。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:2)

您需要在构造函数中注入依赖项。像这样:

constructor(private loginservicemodel: LoginService) {
    this.model.userName = 'erere@ada.comasdasd';
    this.model.password = "test anand";
}