加载另一个页面时,Angularjs范围变量丢失

时间:2014-10-16 09:22:56

标签: angularjs angularjs-scope

我有以下控制器:

 appModule.controller('myController', function($scope, $http)
 {
   $scope.getObject= function(id)
   {
      $http.get('/objects/'+id+'.json').success(function (data, status) {
      $scope.objects = data;
    });

}
});

在我看来index.html

 <button ng-click="getObject(id)">click</button>

它可以正常使用我的物体。在另一个视图(home.html)中,我想获得&#39;对象&#39;变量

我怎么能这样做。

由于

2 个答案:

答案 0 :(得分:0)

我非常同情你的问题。 我花了很长时间才在angularjs中掌握这个概念。

短响应是在您的其他控制器(家庭控制器)中,您应该执行与上述相同的呼叫。

你可能已经一遍又一遍地读过服务和工厂是singeltons,在这种情况下,http是你的服务/工厂(高级读者:它实际上是一个提供者,但我试图保持简单),所以每次你称之为angular,只有在需要时才能检索到它。

每个控制器都应使用其数据($scope.something =)填充其范围。 您可以使用$resourcerestangular打包http来。但我对你的建议是从$http开始,一旦你感觉它转移到其他人身上。

@vojtiik提到的article也是一个非常好的读物。

答案 1 :(得分:0)

答案很晚,但我最近遇到了类似的问题。 $ rootScope是一个全局范围变量,可用于每个页面中的每个控制器。我假设“myController”与您在其他视图(home.html)中使用的控制器相同。您的代码现在看起来像

$rootScope.objects = data;

变量对象现在全局可用。