TypeError: dbg no está definido en angularjs

Estoy aprendiendo angularjs y siguiendo el tutorial de – aquí

Aquí está mi index.jsp –

   Angular Example     Search : -  Sort by:  Alphabetical Newest Oldest  

Total number of phones: {{phones.length}}

  • {{phone.name}}

    {{phone.snippet}}

esta versión de los trabajos de controller.js –

 var phonecatApp = angular.module('phoneCatApp', []); phonecatApp.controller('phoneListCtrlOld', function($scope) { $scope.phones = [ { 'name' : 'Nexus S', 'snippet' : 'Fast just got faster with Nexus S.', 'age' : 1 }, { 'name' : 'Motorola XOOM™ with Wi-Fi', 'snippet' : 'The Next, Next Generation tablet.', 'age' : 2 }, { 'name' : 'MOTOROLA XOOM™', 'snippet' : 'The Next, Next Generation tablet.', 'age' : 3 } ]; $scope.orderProp = 'age'; }); 

pero en el siguiente paso intenté obtener estos datos json con una llamada ajax para que el controlador se vea así:

 var phonecatApp = angular.module('phoneCatApp', []); phonecatApp.controller('phoneListCtrl', function($scope, $http) { $http.get('app/js/phones.json').success(function(data) { $scope.phones = data; }); $scope.orderProp = 'age'; }); 

Pero esto me da el siguiente error:

TypeError: dbg no está definido. debuggerLib.js (línea 530)

Puedo ver en firebug que la llamada ajax está sucediendo con el código 304 Not Modified. y puedo ver datos en respuesta. pero el tipo de contenido de respuesta no es json.

Míralo y di cuál es el problema? ¿Me falta algún archivo js para incluir o algo más?

He tenido el mismo error, y después de un rasguño en la cabeza encontré una causa. No puedo estar seguro de si esta es tu misma causa.

Reiniciar Firefox, reiniciar la PC, eliminar Firebug, reinstalar, optimizar, ejecutar la limpieza del registro, etc., nada ayudó. Obtuve el error en la línea 556 de debuggerLib.js, siendo undefined dbg.

Sin embargo, resulta que he instalado Firebug en los días, y creó un directorio en mi perfil de itinerancia:

 C:\Users\Leonardo\AppData\Roaming\Mozilla\Firefox\Profiles\Leonardo.Serni\firebug 

En ese directorio hay una gran cantidad de archivos JSON, pero ninguno de ellos está fechado hoy, que es cuando eliminé y volví a instalar Firebug. Entonces me pregunté, “¿Qué pasa si el nuevo Firebug está cargando algo obsoleto de este directorio?”.

Cerré Firefox, renombré el directorio de “firebug” a “bugfire” y volví a abrir Firefox.

Firebug funciona perfectamente y el error ha desaparecido . Hice lo mismo sin cambiar el nombre del directorio y el error no desapareció, por lo que estoy seguro de que mi hipótesis era correcta.

El directorio se ha vuelto a crear, pero ahora solo hay dos archivos allí: “annotations.json” y “breakpoints.json”, ambos de 0 bytes de tamaño. Es posible que algún día trate de agregar los archivos del directorio anterior para ver cuándo vuelve el error.

Actualización (gracias al comentario de DevNull)

Posiblemente no sea necesario nukear todo el directorio. Verifique que el archivo annotations.json sea ​​de longitud cero. Si no es así, simplemente cambie el nombre a annotations.old mientras Firefox no se está ejecutando.


Estoy empezando a sospechar que el dbg realidad está depurando Firebug , y no lo tenemos definido porque no somos desarrolladores de Firebug. No tiene nada que ver con el depurador Firebug que depura nuestros scripts.

Probablemente estés usando FireFox con firebug activado.
Desactiva Firebug y tu problema desaparecerá.

Tuve el mismo problema, otros navegadores no tuvieron problemas y la consola mostró el error proveniente de debuggerLib.js (línea 556). Desactivarlo eliminó el error y permitió que mi aplicación se ejecutara como se esperaba.

use este código html head tag.

   

….

Pruebe esto, Primero inicialice el valor de matriz JSON es un inicializador empty.so

  $scope.phones = ''; 

La explicación de @LSerni parece correcta. Para el sistema Linux simplemente elimine y reinstale su complemento Firebug. El sistema borra automáticamente todos los archivos / carpetas relacionados y lo recrea. Esto funcionó para mí.

El error que está teniendo es con su archivo JSON. Debe tener un aspecto como este:

  [{ "name" : "Nexus S", "snippet" : "Fast just got faster with Nexus S.", "age" : 1 }, { "name" : "Motorola XOOM™ with Wi-Fi", "snippet" : "The Next, Next Generation tablet.", "age" : 2 }, { "name" : "MOTOROLA XOOM™", "snippet" : "The Next, Next Generation tablet.", "age" : 3 }] 

Recuerde los corchetes.

Use .then en lugar de .success . Esta es una versión mejorada de .success maneja todas las devoluciones de llamada y llamadas de manera más eficiente. Devuelve toda la promesa y la resuelve al hacer referencia a la parte .data ie response.data

 $http.get('app/js/phones.json').then(function(response) { $scope.phones = response.data; }); 

DEMO – Usando .success

DEMO – Uso de .entonces promesa

Está utilizando el número así que use el número o el valor de análisis para numerar el ejemplo a continuación.

  var myApp = angular.module('MyApp',[]); myApp.controller("myController",function($scope){ $scope.width=50; $scope.height=50; });  

para mí, el problema era que había olvidado definir en el controlador de la biblioteca

 app.controller("MyCtrl", function($scope, $http) { //<- here $timeout was missing $http.get(someUrl) .then(function(myResponse) { $scope.myData = myResponse.data; $timeout(function() { //<- here $timeout was called without being defined enableWatchers = true; }); }); }); 

Funciona después de haber cambiado la primera línea de mi código a:

 app.controller("MyCtrl", function($scope, $http, $timeout) { //<- here I put the $timeout