$ смотреть объект

Я хочу следить за изменениями в словаре, но по какой-то причине смотреть обратный вызов не вызывается.

Вот контроллер, который я использую:

function MyController($scope) {
    $scope.form = {
        name: 'my name',
        surname: 'surname'
    }

    $scope.$watch('form', function(newVal, oldVal){
        console.log('changed');
    });
}

Вотиграть на скрипке.

Я ожидаю, что обратный вызов $ watch будет срабатывать каждый раз, когда имя или фамилия меняются, но этого не происходит.

Как правильно это сделать?