如何从angularjs中移除消化循环

how to remove digest cycle from angularjs?

本文关键字:循环 angularjs      更新时间:2023-09-26

我熟悉angularjs中的摘要循环及其工作原理。我的问题是,我们可以从angularjs中删除消化循环,仍然能够构建angular应用程序吗?如果有,我们如何移除它们。我还想知道我们怎样才能延缓消化周期

不,摘要循环是AngularJS工作的基础部分(双向数据绑定等等)。为什么要使用AngularJS,如果你想把它分解成不再是AngularJS的东西呢?

摘要循环只是创建"观察者"抽象,以允许数据在视图层和数据层之间来回流动。

如果你不想这样,那么我建议不要使用AngularJS,因为你会使用臃肿的代码而没有任何好处。

其他用户已经提供了简短的答案,那就是no。

但是,我们可以控制数据何时进入视图,何时不进入。

例如,即时数据绑定默认是这样的:
<input type='text' ng-model='data'>
{{data}}

如果我们想延迟它,比如说0.5秒呢?我们可以分离视图模型,并在适当的时候给它赋值。

<input type='text' ng-model='data'>
{{viewData}}
$scope.$watch(function(){
    $scope.data;
}, function(){
    $timeout(function(){
        $scope.viewData = angular.copy($scope.data);
    }, 500);
});

或者只在按钮被点击时显示。

<input type='text' ng-model='data'>
<button ng-click='click()'>Click me!</button>
{{viewData}}
$scope.click = function() {
    $scope.viewData = angular.copy($scope.data);
}