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

加载另一页时Angularjs范围变量丢失,angularjs,angularjs-scope,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中

我有以下控制器:

 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中,我想获取“objects”变量

我怎么能这样做呢


谢谢

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

简短的回答是,在您的另一个控制器home controller中,您应该执行与上述相同的调用

您可能已经一遍又一遍地读到服务和工厂是Singleton,在本例中http是您的服务/工厂高级读取器:它实际上是一个提供者,但我试图保持它的简单性,因此每次调用它时,angular都有责任仅在需要时检索它

每个控制器都应使用其数据$scope.something=填充其作用域。 您可以使用或包装http调用。但是我给你的建议是从$http开始,一旦你感觉到了它,就转移到其他人身上


@vojtiik提到的这本书也是一本很好的读物

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

$rootScope.objects = data;

变量对象现在可以在全球范围内使用。

您可能会发现这篇文章非常有用。