I want automatically refresh $scope.variable in both controllers to new value if data.variable in SharedFactory was changed:
.controller('FirstController', function($scope, SharedFactory) {
  $scope.variable = SharedFactory.getVal();
})
.controller('SecondController', function($scope, SharedFactory) {
  $scope.variable = SharedFactory.getVal();
  SharedFactory.setVal("test string 2");
})
.factory("SharedFactory", function () {
    var data = {                // all variables by default
        variable : 'test string'
    };
    return {
        getVal: function () {
            return data.variable
        },
        setVal: function (i) {
            data.variable = i;
        }
    }
});
http://plnkr.co/edit/b1RNcl6Pz2iuRr2t2Q9x?p=preview
So at this example correct result must be "test string 2" in both controllers. How to do that?
 
     
     
    