我是 Angular JS 的新手,我有一个基本的 Angular 应用程序,它只设置一个范围对象,设置一些函数来初始化/创建范围对象。当我在我的函数中使用 console.log 时,它报告的是在范围函数末尾设置的 $scope 值,而不是 console.log 时范围对象的值。我确定这是一个基本的执行顺序问题,对于此问题的任何解释或帮助,我将不胜感激。
这是 Angular 代码:
var module = angular.module('my-app', []);
function MainController($scope)
{
$scope.testDict = {};
$scope.createNewTestDict = function(){
$scope.testDict.test1 = {1: false, 2: false, 3: false}
}
$scope.initializeDict = function(){
$scope.createNewTestDict();
console.log($scope.testDict);
$scope.testDict.test1 = {1: true, 2: true, 3: true}
}
$scope.initializeDict();
}
JSFiddle 在这里:http://jsfiddle.net/U6ZKr/7/
因此您会注意到,在记录日志时实际作用域对象中的 console.log 应该是所有值 false,但它们都是在 console.log 之后设置的所有 true。
预先感谢您的帮助!
最佳答案
由于 $scope.testDict 作为对 console.log 的引用传递并且它是异步评估的,因此该值可能不准确。
一种替代方法是使用 console.log(JSON.stringify($scope.testDict));
来查看正确的结果。
关于javascript - AngularJS 中的 console.log 在范围函数之后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19601222/