仅在$ scope数据更改时更新DOM

时间:2016-09-27 14:38:00

标签: javascript angularjs

在我的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
})

我注意到所有未选中的复选框都会在&#34; Some Function&#34;单击按钮。我检查了DOM并意识到单击按钮时所有复选框都被重新渲染。

有没有办法只在$ scope更改时更新DOM? 注意:我不能使用单向绑定,因为$ scope.settings.active可以被其他函数更改

1 个答案:

答案 0 :(得分:0)

我找到了错误的来源。它是由远远超过节点的过滤器引起的