escopo $ watch em uma diretiva não está sendo chamado após a requisição AJAX

Eu tenho a seguinte diretiva:

MyApp.directive('myFilter', ['$filter','$rootScope',
function($filter, $rootScope)
{
    var dir = {};
    dir.restrict = 'E';
    dir.templateUrl = 'views/myFilter.html';
    dir.replace = true;
    dir.scope = 
        {
            name: '@',
            model: '=',
        };

    dir.link = function(scope,el,attrs)
    {        
        //stuff here
    }


    return dir; 
}]);

Aqui está como invoco:

<my-filter model="someField" name="abcd" />

Quando a diretiva é iniciada pela primeira vez, osomeField está vazia. Mais tarde, ele é recuperado via ajax e seu valor é preenchido.

A pergunta é: como posso observar o valor desomeField ser atualizado? Quando faço isso pelo método de link:

scope.$watch(scope.model, function()
{
   console.log( "changed, new val: ", scope.model );
}

Isso é chamado apenas uma vez, ao iniciar a diretiva, e o valor fica vazio. Quando o valor é recuperado via ajax (de$http.get), esta função de relógio não é chamada novamente. No entanto, em outras partes da página em que estou exibindo{{someField}}, esse valor é atualizado quando o pedido ajax é buscado. Então eu não acho que o problema tenha a ver com fazer$scope.apply() após o pedido de ajax.

Editar: someField é atribuído no controlador. Aqui está o código:

MyApp.controller('myCtrl', 
['$scope', '$rootScope', '$routeParams', 
'ajax', '$filter',

function($scope, $rootScope, $routeParams, ajax, $filter)
{
    var userId = parseInt( $routeParams.userId );        
    $scope.loaded = false;
    $scope.someField = ""; //initalize with empty value

    var load = function(data)
    {
        $scope.loaded = true;
        $scope.someField = data.someField;            
    };        

    ajax.getUser(userId).success(load);               
}
]);

O métodoajax.getUser() faz um$http.get() e retorna suapromise. No código acima, oload método é chamado que define o valor desomeField.

questionAnswers(1)

yourAnswerToTheQuestion