Sky*_*ude 2 javascript angularjs
我是Angular JS的新手,我有一个基本的Angular App,只需设置一个范围对象,设置一些函数来初始化/创建范围对象.当我在我的函数中使用console.log时,它会报告在scope函数末尾设置的$ scope值,而不是console.log时的scope对象的值.我确定这是一个基本的执行顺序问题,我将不胜感激任何解释或帮助解决这个问题.
这是角度代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
JSFiddle这里:http://jsfiddle.net/U6ZKr/7/
因此,您会注意到日志时实际范围对象中的console.log应该都是false,但它们都是在console.log之后设置的全部true.
在此先感谢您的帮助!
由于$ scope.testDict作为对console.log的引用传递,并且它是异步计算的,因此该值可能不准确.
一种替代方法是使用console.log(JSON.stringify($scope.testDict));以查看正确的结果.
| 归档时间: |
|
| 查看次数: |
30312 次 |
| 最近记录: |