在AngularJS中创建全局对象

时间:2014-10-10 00:28:03

标签: angularjs asynchronous promise

我是Angular的新手,可以使用一些帮助。

我想在整个应用程序中维护一个对象。我创建了一个使用http.get请求读取JSON文件的工厂:

grey.factory('JiraData', function( $http ) {
   return {
      getData: function( callback ) {
         $http.get( 'js/testdata.json' ).success( callback );
      }
   };
}); 

然后我在我的控制器中访问这些数据:

grey.controller ( 'StoreFilterController', function( $scope, JiraData ) {
   JiraData.async().then( function( d ) {
      $scope.data = d.data;
   });
});

我现在可以在引用我的StoreFilterController的视图中访问此数据。在我的应用程序中,需要在各种控制器,工厂和指令中使用和操作这些数据。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

如果刷新/重定向后不需要数据存活,则可以使用服务属性$ rootScope或sessionStorage来保存数据(或者像窗口一样的全局对象,但请尝试如果可能的话避免它。)

但是,如果您需要在刷新后保留数据,则可以使用localStorage

答案 1 :(得分:0)

我也是新手,但我会试一试;)

在.factory

返回对象,例如:     var o = {data:[]};     返回o;

然后在你的控制器中将它作为依赖项注入,然后设置为等于范围变量:     .controller(' Ctrl',['数据',     功能(数据){         $ scope.item = data.data [];     }]);

这是否接近?