如何在angularJs中存储一些数据供以后使用?

时间:2014-12-27 12:00:35

标签: angularjs angularjs-factory

我有一个简单的查询。如何在angularJs中存储一些数据或值以供以后使用?让我更清楚一点:我想从一个控制器存储一个值并在其他控制器中使用它?

3 个答案:

答案 0 :(得分:2)

你应该使用角度服务来实现这一目标。请注意,角度服务是单例,可以注入控制器。一个快速的原型来展示基本的:

angular.module('myApp', []).factory('myService', function () {
    var o = {x:1, y:2};
    return {
        getO: getO,
        setO: setO
    };

    function getO() {
        return o;
    }
    function setO(x, y) {
        o.x = x;
        o.y = y;
    }
});

angular.module('myApp').controller('MyCtrlA', function ($scope, myService) {
    myService.setO(3, 4);
});

angular.module('myApp').controller('MyCtrlB', function ($scope, myService) {
    var o = myService.getO(); // {x:3, y:4}
});

答案 1 :(得分:1)

听起来像Angular术语中的“服务”。为了在服务中保留数据,您可以使用从本地存储到云端json后端的各种实现,例如firebase。

答案 2 :(得分:1)

如果你不需要刷新页面就有一个$cacheFactory它可以解决问题https://docs.angularjs.org/api/ng/service/$cacheFactory

因此,无论何时何地,只要您需要,您都可以轻松地从缓存中获取和获取内容