2016-05-18 3 views
0

я наткнулся this answer, в которой автор делаетПочему бы сравнить старое значение и новое значение с помощью угловых часов, чтобы увидеть, если они равны

$scope.$watch('myObject', function(newValue, oldValue){ 
    if(angular.equals(newValue, oldValue)){ 
     return; 
    } 
}); 

Почему бы новое_значение и OldValue когда-нибудь то же самое здесь ? Мое понимание $watch заключается в том, что он срабатывает только при изменении myObject. Что мне не хватает?

ответ

1

Это совершенно бесполезно в случае использования $watch. Ответ, который вы указали, ничего не добавляет. Тем не менее, исходный вопрос имеет смысл, и это known bug при использовании $watchCollection.

+0

Как я и думал. Просто убедившись, что я чего-то не пропустил, так как у этого ответа было 6 upvotes –

0
$scope.$watch('searchStr', function (tmpStr){ 
    if (tmpStr === $scope.searchStr){ 
     $http.get('http://devclone.wegetmusic.com:9200/weget/_search').success(function(data) { 
      $scope.responseData = data; 
      }); 
     } 
    }); 

plnkr В этом примере мы соответствовали новой и старой строке, чтобы сделать поиск/отправить запрос API для поиска

Причина этого заключается в минимизации запроса API при вводе данных в поле поиска проверяется по истечению времени если пользователь не набрал ничего за это время, тогда выполните поиск, поэтому мы сопоставили новое и старое значение

+0

Я не понимаю, почему вы это делаете. так как 'newValue' часов всегда будет равняться' $ scope.searchStr', в чем смысл проверки? Также кажется, что тег 'ng-change' и' ng-model-options' может обрабатывать это как часы, так и часы. –

Смежные вопросы