$ ein Objekt beobachten

Ich möchte nach Änderungen in einem Wörterbuch suchen, aber aus irgendeinem Grund wird der Watch-Callback nicht aufgerufen.

Hier ist ein Controller, den ich benutze:

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

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

Hier istGeige.

Ich gehe davon aus, dass der $ watch-Rückruf jedes Mal ausgelöst wird, wenn der Name oder der Nachname geändert wird, aber das passiert nicht.

Was ist der richtige Weg, um es zu tun?