Alguém sabe se o raciocínio por trás do uso de métodos e variáveis dollar no angularJS é instruir o angularJS a evitar verificar esses valores quando uma digestão está ocorrendo? Então, se angular se depara $scope.$value
e $scope.value
, em seguida, ele vai evitar a verificar o ex vez que é prefixado com um personagem dólar em seu nome variável?
128
$scope
, mas diretiva possuiscope
. WTF?Respostas:
Algumas vezes, o Angular ignora variáveis prefixadas com o cifrão:
Ao usar a
{{ }}
diretiva, angular não mostrará variáveis aninhadas$
. Por exemplo, isso exibe apenas avisible
propriedadeAlém disso, ao adicionar um observador explícito em um objeto de escopo, as alterações nas propriedades com um sinal de dólar inicial desse objeto não acionarão o observador. Veja este violino atualizado .
angular.equals()
ignora chaves prefixadas com$
.fonte
É apenas uma convenção de nomenclatura do trecho abaixo http://docs.angularjs.org/tutorial/step_05
http://docs.angularjs.org/guide/concepts#angular_namespace
fonte
$scope
no controlador, masscope
na diretiva? --- [1] docs.angularjs.org/guide/directiveO
$
prefixo indica uma variável, parâmetro, propriedade ou método que pertence ao núcleo do Angular.Propriedades em objetos que se originam dentro da estrutura, mas na verdade não fazem parte da API, podem começar com
$
- ou até mesmo$$
- para indicar um método ou propriedade particular . É da mesma maneira que o_
prefixo é frequentemente usado em outras bibliotecas.Ele não afeta a maneira como o código é interpretado pelo tempo de execução, embora a própria estrutura possa dar um significado especial. Basicamente, é uma convenção de nomenclatura que diz "Você não deve mexer com isso".
fonte
$$__$_$
- é apenas um identificador sem significado especial para o intérprete.Não tenho certeza, mas acredito que os internos do AngularJS dependem da manipulação dessas variáveis com prefixo $ durante o resumo. A verificação dessas variáveis significaria que o resumo nunca se estabilizaria, pois eles podem mudar constantemente durante cada ciclo do resumo.
Mas não me cite. :)
fonte
Eu sempre achei que
$
parecia um "S" para serviço.fonte
Os sinais de dólar ( $ ) também impedem que os elementos sejam iterados (ou interpretados) em determinadas diretivas. Portanto, por exemplo, as propriedades que começam com $ não são usadas
ng-repeat
devido a uma cláusula if no loop for :Alguém fez um problema sobre o tópico aqui na página do angulars github
Nas
shallowCopy
propriedades do método que começam com $$ são ignoradas devido a uma cláusula if enquanto iteram as devidas propriedades :fonte
O @MarcoS forneceu o link para https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope, o que explica a diferença entre $ scope e scope. Achei isso útil, acrescentando informações às outras respostas.
Em uma diretiva angular, há um link e um controlador. O link é uma função padrão com um conjunto fixo de parâmetros: escopo, elemento, objeto de atributos.
Os argumentos do controlador são gerenciados pelo injetor Angular e não dependem da ordem. O injetor resolve quais objetos passar, procurando os parâmetros que começam com $.
O autor de https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope faz um trabalho melhor ao explicá-lo.
fonte
Há uma enorme diferença, não nas variáveis, mas nos parâmetros que um controlador recebe. Um parâmetro de escopo é completamente diferente de um $ scope.
Para obter mais informações, consulte este post útil: http://www.thinkster.io/angularjs/aw9kWmdnik/angularjs-scope-vs-scope
fonte