gpt4 book ai didi

javascript - angular $watch 在初始化时被触发?

转载 作者:行者123 更新时间:2023-11-29 21:50:21 24 4
gpt4 key购买 nike

    var app = angular.module('app', []);

app.controller('TheCtrl', ['$scope', function (scope) {

scope.user = {
name: "木士羽",
email: 'fdaf@qfdsafq.com',
};

scope.$watch('user.name', function () {
console.log('change');
});

}]);

angular.bootstrap(document.documentElement, ['app']);

当页面加载时,'change' 被打印在控制台中。

$watch 在初始化时被触发。如何避免?

最佳答案

这种方法怎么样:

第一次 oldValue 将等于 newValue,因此通过 if 验证避免这种情况。

$scope.$watch(
function() {
return $scope.user.name;
},
function(newValue, oldValue) {
if (oldValue !== newValue) {
// .....
}
});

演示 Fiddle

顺便说一句,最好在观察者中编写 if (oldValue !== newValue){/* ...*/} 以避免在观察下执行额外的代码

关于javascript - angular $watch 在初始化时被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591881/

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