scope. $ watch w dyrektywie nie jest wywoływany po żądaniu AJAX

Mam następującą dyrektywę:

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; 
}]);

Oto, jak go wywołam:

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

Po pierwszej inicjalizacji dyrektywysomeField jest pusty. Później jest pobierany przez ajax, a jego wartość jest wypełniana.

Pytanie brzmi, jak mogę sprawdzić wartośćsomeField do zaktualizowania? Kiedy to robię z metody linku:

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

Jest to wywoływane tylko raz, podczas inicjowania dyrektywy, a wartość jest wtedy pusta. Po pobraniu wartości za pomocą ajax (z$http.get), ta funkcja zegarka nie zostanie ponownie wywołana. Jednak w innych częściach strony, na których wyświetlam{{someField}}, ta wartość NIE aktualizuje się, gdy pobierane jest żądanie ajax. Więc nie sądzę, aby problem miał związek z robieniem$scope.apply() po żądaniu ajax.

Edytować: someField jest przypisany w kontrolerze. Oto kod:

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);               
}
]);

Metodaajax.getUser() robi a$http.get() i zwraca jegopromise. W powyższym kodzieload wywoływana jest metoda, która ustawia wartośćsomeField.

questionAnswers(1)

yourAnswerToTheQuestion