一旦填充了javascript对象,就再次使用get get方法

时间:2015-12-04 15:34:04

标签: javascript aurelia

我有以下内容:

head.js

export class Header{
    customer={};

  getCustomerData(){
    this.customer={
      first:'test',
      middle:'middle',
      last:'test'
    }
  }

  activate() {
      getCustomerData();
  }
  get customerFullName(){
    return `${this.customer.first} ${this.customer.middle} ${this.customer.last}`;
  }
}

head.html

<div class="head">
    ${customerFullName}
</div>

因此客户对象最初是空的,并且在填充activate()之前不会填充。这意味着在第一次进入屏幕时,div是空白的,但在触发getCustomerData()之后不会更新。我如何使customerFullName依赖于激活(即只有在激活()完成后才激活此方法),或者在客户拥有数据后再次触发customerFullName?

1 个答案:

答案 0 :(得分:1)

我认为代码中存在错误 - activate方法应该有this.getCustomerData();而不是getCustomerData();

如果您希望延迟模板的绑定/呈现,直到加载客户数据之后,您应该从activate方法返回一个promise:return this.getCustomerData();(假设您的真实getCustomerData返回承诺)。

这是一个工作的掠夺者:http://plnkr.co/edit/kBHq4p?p=preview