Angular 2数据绑定(无法读取未定义的属性&proposed; _usuario'

时间:2017-03-03 14:40:01

标签: angular data-binding angular2-forms

我试图绑定Angular 2上的输入数据,但我遇到了一些问题。

这是html代码:

    <input type="text" class="animated bounceIn input-proposta" 
        placeholder="Insira sua proposta" [(ngModel)]="proposta.proposta_usuario" >

<input type="button" (click)="enviaProposta(proposta)" class="botao-medio btn-aceita" value="Enviar Proposta" >

以及这里的组件(我为&#34; proposta&#34创建了一个界面;其中我有两个属性:&#39; proposta_usuario&#39;以及&#39; proposta_cliente&#39; )

import { Component } from '@angular/core';
import {Http, Headers} from '@angular/http';
import {ActivatedRoute} from '@angular/router';
import {DisputaComponent} from '../../disputas/disputas.component';
import {DisputaService} from '../../disputas/disputas.service';
import {disputaPropostas} from './proposta.interface';

@Component({
  moduleId: module.id,
  selector: 'detalhes',
  templateUrl: `disputas-proposta.component.html`
})

export class DetalhesNegociacaoComponent  {


    disputa: DisputaComponent;
    service: DisputaService;
    route: ActivatedRoute;
    inputProposta = false;
    proposta:disputaPropostas;

    //constructor and other functions


      enviaProposta(proposta:any){
        this.inputProposta = false;
        console.log(this.proposta.proposta_usuario);
     }

我只想在console.log上显示输入值,但我收到此错误

  

无法读取属性&c?proposta_usuario&#39;未定义的

提前致谢

3 个答案:

答案 0 :(得分:3)

您必须在组件中定义proposta。 例如:

    ngOnInit(){
    this.proposta = new disputaPropostas();
}

答案 1 :(得分:3)

因为在您的代码中,您只需将proposta定义为您的界面disputaPropostas的一种类型。但你需要实现它。

答案 2 :(得分:2)

你需要实例化proposta属性,

proposta :disputaPropostas = { proposta_usuario : "", proposta_cliente: "" }

希望这会有所帮助!!