gpt4 book ai didi

javascript - AngularJS 中的 console.log 在范围函数之后执行

转载 作者:行者123 更新时间:2023-12-01 01:24:24 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com