无法设置未定义或空引用的属性

时间:2019-05-03 20:56:43

标签: angular

我试图为对象的属性设置一个值,但每次遇到此错误。

我尝试在类中实现对象,并且还尝试实现和导入接口。

// In my interface I have put:
export interface Despesas {
  totalAlimentacao: string,
  totalHospedagem: string,
}

// And in my Class Service
import { Despesas } from '../interfaces/despesas'

@Injectable({
  providedIn: 'root'
})
export class DespesasService {

  @Input() objectDespesas: Despesas;

  constructor() { }

setDespesas() {
    this.objectDespesas.totalAlimentacao = "2";
  }

// I am calling setDespesas from other place and it is everything fine in the call

2 个答案:

答案 0 :(得分:2)

它将始终为undefined,因为您已将对象指定为@Input,该对象来自父模板,并且服务没有关联的模板。

@Input@Output用于指令/组件。

您要做的就是在构造函数或onInit

中初始化对象

例如

this.objectDespesas = { }

答案 1 :(得分:-1)

也许您应该尝试在DespesasService的构造函数中初始化对象

constructor()
{

  this.objectDespesas = {
     totalAlimentacao: '',
     totalHospedagem: ''
  }

}