仅当$scope数据发生变化时更新DOM

Update DOM only when $scope data changes

本文关键字:变化 更新 DOM scope 数据 仅当      更新时间:2023-09-26

在我的angular js应用中,我注意到每次调用函数时DOM都会更新。即使函数没有改变任何$scope变量,也会发生这种情况。

我正在使用ng-repeat创建如下所示的一组复选框。

HTML

<a ng-click="someFunction()" >Some Function</a>
<form action="/settings/save">
  <label>
    <input ng-repeat="option in settings.active" name="options[]" value="{{option}}" checked="checked" />
    {{option}}
  </label>
  <input type="submit" value="Save" />
</form>

JS

angular.module("myapp")
    .controller("settingsCtrl", function($scope, $loadServ){
    //$loadServ is a service for fetching data from the server
    $loadServ("/settings/load")
        .success(function(response){$scope.settings = response.data});
    $scope.someVariable = "something";
    $scope.someFunction = function(){
        //There's nothing here yet
    }
    //More code follows
})

我注意到当点击"某些功能"按钮时,所有未选中的复选框都被选中了。我检查了DOM,发现当按钮被点击时,所有的复选框都被重新渲染了。

是否有一种方法来更新DOM只有当$作用域改变?注意:我不能使用单向绑定,因为$scope.settings。

我找到了错误的根源。它是由应用在远高于节点

的过滤器引起的。