Nota de estudo do AngularJS: $ watch () URL atual

Eu quero usar a função $ watch () para obter a URL atual, quando ela mudar, faça algo.

Mas no início, quando a URL muda, nada aconteceu. Eu costumava escrever assim, o que é ERRADO:

$scope.$watch('$location.path()', function(value){
console
.log(value);
}

Isso está errado porque,

$ scope. $ watch (watchExpression, callbackFunction);

“O primeiro parâmetro do método $ watch (a“ watchExpression ”) pode ser uma expressão de string Angular (que é avaliada em relação ao $ scope) ou uma função, que é chamada com $ scope como o primeiro parâmetro.“ Eu encontrei esta explicação de <a href=” http://stackoverflow.com/questions/14932119/why-angular-js-parameter-of-a-watch-function-should-be-a-scope-variable”> stackoverflow </ a>

Também fornece um <a href=” http://jsfiddle.net/vojtajina/w39eL/”> ótimo exemplo para ilustrar </a>

Depois de ler, eu mudo meu código para este:

$scope.$watch(function(){
return $location.path();
}, function(value){
console
.log(value);
}

Funciona! Sempre que clico em um link que altera o URL, o console imprime o URL.