Angular JS propagate child scope variable changes to parent scope

This is due to how prototypal inheritance works.

When you ask for $scope.x in the child controller, it checks to see if x is defined on its scope, and if not, looks for x in the parent scope.

If you assign to the child scope’s x property, it only modifies the child scope.

An easy way to deal with this and get the sharing behavior is to use an object or an array.

function ParentCtrl($scope) {
  $scope.model = {x: 5, y: 5};
}

function ChildCtrl($scope) {
  $scope.update = function(x, y) {
    $scope.model.x = x;
    $scope.model.y = y;
  };
}

Here, the changes will be visible in both scopes, because $scope.model will refer to the same object in both parent and child scopes.

John Lindquist has a video on this.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)