Вы ответили на свой вопрос в названии! '='
просматривается, а '&'
не
ng-model
изменяется значение и срабатывает ng-change()
ng-change добавляет $ viewChangeListener и называется этим же циклом. См .: реализация ngModel.js # L714 и ngChange.js . В то время $scope.searchFilter
не обновлялся. Предыдущее значение Console.log searchFilter
обновляется привязкой данных. UPDATE: только в качестве POC, для которого вам нужен 1 дополнительный цикл для значение для распространения вы можете сделать следующее. См. Другой anwser (@NewDev для более чистого подхода).
.controller('mainCtrl', function ($scope, $timeout){
$scope.loadResults = function (){
$timeout(function(){
console.log($scope.searchFilter);
});
};
});