@bindable的操作顺序

时间:2018-08-16 21:04:24

标签: aurelia aurelia-binding aurelia-framework

如果我有一个子控件(在本例中为孙子控件),如下所示:

<my-control region-id.two-way="location.regionId"></my-control>

我什么时候可以使用regionId?文档听起来像是绑定,然后发生附加,所以不应该在附加发生之前设置regionId吗?

我在bindattachedregionIdChanged事件中添加了一些日志记录,并在控制台上看到了

bind
attached
regionIdChange to null from undefined (default value in a dropdown)
regionIdChange to 1 from null (1 is the actual value)

我期望regionIdattached发生之前是1。这是预期的行为吗?

1 个答案:

答案 0 :(得分:3)

变量应在bind()阶段填充。

如果您将日志记录添加到每个阶段:

export class Child {
  @bindable()
  public field: string;

  constructor() {
    console.info("constructor: ", this.field);
  }

  bind() {
    console.info("bind: ", this.field);
  }

  attached() {
    console.info("attached: ", this.field);
  }
}

它将产生以下日志输出:

constructor:  undefined
bind:  test
attached:  test

test是我绑定到的值。