【问题标题】:Update AngularJS component when bindings change绑定更改时更新 AngularJS 组件
【发布时间】:2017-05-20 00:32:00
【问题描述】:

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

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

&lt;whois&gt;&lt;/whois&gt; 组件如下:

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 更改时,&lt;whois&gt;&lt;/whois&gt; 组件会更新,但变量 $ctrl.whois 除外。

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

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

【问题讨论】:

  • 您需要查看组件 docs.angularjs.org/guide/component 的 $onChanges(changesObj) 挂钩。这将允许您检查域或扩展名何时更改。然后你可以更新 this.whois
  • 谢谢!这就像魅力:) 如果您发布答案,我很乐意将其标记为解析器。
  • 完成。很高兴我能帮助你! :)

标签: angularjs components


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-09
    • 2016-05-02
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多