gpt4 book ai didi

angularjs - 在 AngularJS 中禁用和启用监视

转载 作者:行者123 更新时间:2023-12-04 15:22:26 25 4
gpt4 key购买 nike

我有一个数据对象的 watch :

$scope.$watch('data', function(after, before) {
$scope.saveData();
}, true);

我还有一个弹出的模式来编辑上面的一些数据对象的属性。但是,如果我通过此模式编辑任何属性,但决定“取消”,它仍会保存已编辑的属性。

有没有办法在模式弹出时禁用该 watch ?

最佳答案

$watch 返回一个函数。如果你调用它,你会删除你的观察者

angular docs ,向下滚动到 $watch 并查看返回值

var myWatcher = $scope.$watch('data', function(after, before) {
$scope.saveData();
}, true);

myWatcher(); // removes your watcher

编辑 :
angular-ui-bootstrap您可以将注销功能传递给模态 Controller 。来自 docs 的修改示例:
    var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
size: size,
resolve: {
items: function () {
return {
data: data
myWatcher: myWatcher // you can call items.myWatcher() in your modal controller
};
}
}
});

但我不知道重新启用观察者的简单方法(函数调用或类似方法)。你将不得不再次设置它。
    modalInstance.result.then(function (data) {
$scope.data = data;
}, function () {
// callback for cancel, here you could re-apply the watcher
});

关于angularjs - 在 AngularJS 中禁用和启用监视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24898942/

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