¿Alguien sabe si el razonamiento detrás del uso de métodos y variables de dólar en angularJS es instruir a angularJS para evitar verificar esos valores cuando se está produciendo una digestión? Entonces, si aparece angular $scope.$value
y $scope.value
, ¿evitará verificar el primero ya que está prefijado con un carácter de dólar en su nombre variable?
128
$scope
, pero la directiva síscope
. WTF?Respuestas:
Hay algunas veces que Angular ignora las variables prefijadas con el signo de dólar:
Al usar la
{{ }}
directiva, angular no mostrará variables anidadas$
. Por ejemplo, esto solo muestra lavisible
propiedad.Además, al agregar un observador explícito en un objeto de alcance, los cambios en las propiedades con un signo de dólar inicial de este objeto no activarán el observador. Ver este violín actualizado .
angular.equals()
ignora las teclas con el prefijo$
.fuente
Es solo una convención de nomenclatura del fragmento siguiente http://docs.angularjs.org/tutorial/step_05
http://docs.angularjs.org/guide/concepts#angular_namespace
fuente
$scope
en el controlador, peroscope
en la directiva? --- [1] docs.angularjs.org/guide/directiveEl
$
prefijo denota una variable, parámetro, propiedad o método que pertenece al núcleo de Angular.Las propiedades en los objetos que se originan dentro del marco, pero que en realidad no son parte de la API, pueden comenzar con
$
, o incluso$$
, para denotar un método o propiedad privada . Esta es la misma forma en que el_
prefijo se usa a menudo en otras bibliotecas.No tiene ningún efecto sobre la forma en que el tiempo de ejecución interpreta el código, aunque el marco en sí mismo puede darle un significado especial. Básicamente, es una convención de nombres que dice "No deberías meterte con esto".
fuente
$$__$_$
: es solo un identificador sin un significado especial para el intérprete.No estoy completamente seguro, pero creo que las partes internas de AngularJS dependen de la manipulación de estas variables con prefijo $ durante el resumen. Verificar estas variables significaría que el resumen nunca se estabilizaría, ya que pueden cambiar constantemente durante cada ciclo del resumen.
Sin embargo, no me cites. :)
fuente
Siempre pensé que
$
se parecía a una "S" para el servicio.fuente
Los signos de dólar ( $ ) también evitan que los elementos se repitan (o interpreten) en ciertas directivas. Entonces, por ejemplo, las propiedades que comienzan con $ no se usan
ng-repeat
debido a una cláusula if en el ciclo for :Alguien hizo un problema sobre el tema aquí en la página de Angular Github
En el método, las
shallowCopy
propiedades que comienzan con $$ se omiten debido a una cláusula if al iterar las propiedades :fuente
@MarcoS proporcionó el enlace a https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope que explica la diferencia entre $ scope y scope. Encontré esto útil, agregando a la información en otras respuestas.
En una directiva angular hay un enlace y un controlador. El enlace es una función estándar con un conjunto fijo de parámetros: alcance, elemento, objeto de atributos.
Los argumentos del controlador son gestionados por el inyector angular y no dependen del orden. El inyector resuelve qué objetos pasar buscando los parámetros que comienzan con $.
El autor de https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope hace un mejor trabajo al explicarlo.
fuente
Hay una gran diferencia, no en las variables, sino en los parámetros que recibe un controlador. Un parámetro de alcance es completamente diferente de uno de $ alcance.
Para obtener más información, consulte esta publicación útil: http://www.thinkster.io/angularjs/aw9kWmdnik/angularjs-scope-vs-scope
fuente