gpt4 book ai didi

AngularJS 1.5.x $onChanges 不适用于单向绑定(bind)更改

转载 作者:行者123 更新时间:2023-12-04 16:38:55 27 4
gpt4 key购买 nike

我不明白为什么当我更改输入中的绑定(bind)原语时 $onChanges 没有启动。有人可以看到我做错了什么,并以简单的方式解释这一点吗?我做了一个plunkr在我无法让它在我的实际应用程序中工作之后的快速测试应用程序。

angular
.module('test', [])
.component('test', {

template: '<child application="vm.application"></child>',
controller: 'testCtrl as vm'
})
.controller('testCtrl', function() {

var vm = this;

vm.$onInit = function () {

vm.application = {
data: {
name: 'Test'
}
}
};
})
.component('child', {

template: '<input type="text" ng-model="vm.application.data.name">',
bindings: {
application: '<'
},
controller: 'childCtrl as vm'
})
.controller('childCtrl', function() {

var vm = this;

vm.$onChanges = function (changes) {
console.log('CHANGED: ', changes);
};
})

最佳答案

正如上面其他人所说,Angular 不会监视对象属性的变化,但是,您可以让 Angular 相信您的对象是通过引用更改的。

为了触发 $onChanges 事件,对对象进行浅拷贝就足够了:
vm.campaign = angular.extend({}, vm.campaign);
归功于@gkalpak

关于AngularJS 1.5.x $onChanges 不适用于单向绑定(bind)更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com