Estoy viendo un comportamiento muy extraño en mi aplicación AngularJS.
Cuando se realiza una sola emisión $, el (único) receptor se dispara dos veces.
El efecto en toda la aplicación es como si el receptor solo hubiera sido disparado una vez. (es decir, solo se agrega uno de los elementos a la cesta).
Si dispara la $ emisión dos veces (es decir, hace clic dos veces en el botón que dispara la emisión $), obtiene cuatro ejecuciones del receptor, pero una cantidad de dos elementos se agrega correctamente a la cesta.
¿Hay algún tipo de actualización de hoja de cálculo aquí? ¿Las funciones do $ scope no deben afectar las variables JavaScript "simples"?
Mi problema es que he agregado un alert
y se muestra dos veces.
que he hecho algo más de trabajo en la depuración de esto:
he añadido un contador que cuenta el número de veces que se recibe la emisión.
Si el alcance (sin un dólar) es global, obtengo el resultado duplicado. Si su alcance es local para la función Ctlr, obtengo un resultado no duplicado.
¿Podría haber creado de alguna manera dos instancias de mi controlador?
Puedo ver de Firebug que las peticiones de $ http ajax realizadas desde el controlador solo se producen una vez, por lo que estoy muy confundido.
Si aún no lo has probado, echa un vistazo a la extensión AngularJS Batarang Chrome para solucionar problemas (https://github.com/angular/angularjs-batarang) en caso de que haya un alcance anidado que cause cierta confusión. – Gloopy