我有一个使用angularjs的离子应用程序。在角度控制器内部,我无法使用$scope打印console.log($scope)。但是我可以访问像$scope.var这样的变量。

angular.module('starter.controllers', ['starter.services','ngCordova'])
.controller('SettingCtrl', function($scope){
   console.log('SettingCtrl ');
   console.log($scope);
   console.log('end');
}


输出是

1     453753   log      SettingCtrl
2     453760   log      end


它完全忽略了引用$ scope的行。
我在这里想念什么?

更新:
我修改并为$ scope分配了一些值,例如

console.log('SettingCtrl ');
$scope.var = 1;
console.log($scope.var);
console.dir($scope);
console.log('end');


并为此输出

1     332968   log      SettingCtrl
2     332970   log      1
3     332972   log      end

最佳答案

在浏览器检查器中,这将起作用,但是如果您启动终端程序后正在查看终端上的日志,

$ ionic run

那么它可能会忽略任何console.dir。要解决此问题,您可以console.log(JSON.stringify(object)),但是我不确定它是否可以在$scope对象上使用,因为由于循环引用,它可能无法字符串化

10-07 19:42
查看更多