如何在服务中存储REST api结果以避免重新查询

时间:2016-02-24 04:24:57

标签: angularjs rest

服务

app.factory('Notes', ['$resource', function($resource) {
    return $resource('/notes/:id', {id: '@id'}, 
        {
            'query':    {method: 'GET', params: { format: 'json'}, isArray: true},
            'update':   {method:'PUT'},
            'save':     {method:'POST'},
            'remove':   {method:'DELETE'},
            'delete':   {method:'DELETE'}
        },
        {   stripTrailingSlashes: false}

    );
}]);

控制器:

app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
                                   function($scope, $routeParams, Notes) {

    $scope.notes = Notes.query();

    Notes.query(
        function(data) {
            $scope.notes = data;
            // success handler
        }, 
        function(error) {
            alert('error')
            // error handler
        }
    );
}]);

如果我们在多个控制器中使用Notes服务,它将一次又一次地获取数据。

如何避免获取数据?我想只获取一次数据,然后向每个控制器提供相同的数据。

0 个答案:

没有答案