I'm learning all about angular. I know there's alot of SO questions about Angular binding but I'm still struggling. Maybe some one can give me some clarity with this example.

.controller('myCtrl',['$scope',function($scope){ //define dummy usermanager "class" var um = function(){ this.username = 'myUsername'; }; //init dummy user class var _um = new um(); //Bind usermanager to scope $scope.UserManager = _um; //After three seconds set new username setTimeout(function(){ console.log('set'); _um.username = 'newUsername'; },3000); }]);

Using basic template

<p>{{ UserManager }}</p>

In this example it will always read { username : myUsername } and never change to { username : newUsername }

How can I properly use Angulars two way binding in this example?

EDIT: It appears I can use $scope.$apply(); but that doesn't seem like the best way to do it.