绑定更改时更新AngularJS组件

时间:2017-01-05 12:44:29

标签: angularjs components

我有一个父组件<lookup-table></lookup-table>,它有一个以下模板:

<td>
    <whois domain="{{ $ctrl.query }}" extension="{{ ext.name }}"></whois>
</td>

<whois></whois>组件如下:

angular.
module('app.components.whois').
component('whois', {
  template: "Whois: {{ $ctrl.domain + '.' + $ctrl.extension + ' = ' + $ctrl.whois }}",
  controller: [
    function WhoisController() {
      this.whois = 'http://'+this.domain+'.'+this.extension;
    }
  ],
  bindings: {
    domain: '@',
    extension: '@'
  }
});

当父$ctrl.domain$ctrl.extension更改时,<whois></whois>组件会更新,但变量$ ctrl.whois除外。

我知道这是因为$ctrl.whois只在执行控制器功能时被设置一次。

如何在绑定更改时进行$ctrl.whois更新?

1 个答案:

答案 0 :(得分:3)

您需要查看组件docs.angularjs.org/guide/component的$ onChanges(changesObj)挂钩。这将允许您检查域或扩展名何时更改。然后你可以更新this.whois。