我有一个父组件<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
更新?
答案 0 :(得分:3)
您需要查看组件docs.angularjs.org/guide/component的$ onChanges(changesObj)挂钩。这将允许您检查域或扩展名何时更改。然后你可以更新this.whois。