2017-08-07 64 views
1

我有一个JS对象,我用来保存我的网站上的一些数据的当前状态,稍后在另一个函数中使用。数据保存在一个函数中,然后从另一个函数访问。Angular.js状态的对象没有被保存到全局范围

$scope.object = {"name": " ", "age": " ", "phone" : " " } 

$scope.setData = function() { 

     $scope.object.name = "Alex"; 
     $scope.object.age = "23"; 
     $scope.object.phone = "123-456-4321" 

     //Data will output here just fine 
     console.log($scope.object.name) 
     console.log($scope.object.age) 
     console.log($scope.object.phone) 
    } 

    $scope.getData = function() { 
     //No data will print here after I have set the object. Why is this? 
     console.log($scope.object.name) 
     console.log($scope.object.age) 
     console.log($scope.object.phone) 

    } 

$scope.setData(); 
$scope.getData(); 

问题是,当我尝试从另一个函数访问对象的数据时,它无法读取我保存在原始函数中的数据。我认为这可能与我没有正确访问当前范围有关,但我不是100%确定的。我习惯了香草JS,在那里我可以访问这个对象,因为它在全局范围内。所有帮助赞赏!

+0

你是什么意思时,你说:“从另一个函数访问对象的数据”?在代码示例中,您在'setData()'之后立即调用'getData()' - 在现实世界中情况并非如此? 另外,'setData'&'getData'函数在哪里实现?在控制器中?在同一个控制器中? –

+0

@MS_AU是的,它们都是在同一个控制器中实现的。事实是,当我运行getData()函数时,console.log不会打印任何东西,就好像对象的属性是空的,尽管它们不应该是因为我在setData()函数中设置了对象属性。 –

+0

你可以请发布完整的代码。另外,如果您在其他地方使用此方法,请将其发布。另外,请尝试是否可以为此问题创建小提琴。 – Shahzad

回答

0

你想要做的是在bouth函数中打印数据吗?因为,如果那样的话,对我来说工作得很好。我唯一做的就是从json参数中取出""Copy exactly as you have

然后,在我的控制台我有

Console log